Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server循环数据查询_Sql_Sql Server - Fatal编程技术网

SQL Server循环数据查询

SQL Server循环数据查询,sql,sql-server,Sql,Sql Server,我有一个包含3条记录的简单表格,如下所示: ChildID | ParentID | Name -------------------------- 1 | null | ABC 2 | null | DEF 3 | 1 | GHI 我需要的是一个查询,它基本上列出了名称和父名称。如果为null,则不应返回父级,类似于: ChildID | Name | Parent_Name ---------------------

我有一个包含3条记录的简单表格,如下所示:

ChildID | ParentID | Name
--------------------------
   1    |   null   | ABC
   2    |   null   | DEF
   3    |    1     | GHI
我需要的是一个查询,它基本上列出了名称和父名称。如果为null,则不应返回父级,类似于:

ChildID |   Name   | Parent_Name
--------------------------------
   1    |   ABC    | no parent
   2    |   DEF    | no parent
   3    |   GHI    | ABC

因为我是SQL server新手,所以我不确定如何解决这个问题。我曾试图寻找,但徒劳无功。任何评论都将不胜感激

一个简单的
左外连接
就可以了。试试这个

CREATE TABLE #tttt
  (
     childid  INT,
     parentid INT,
     name     VARCHAR(50)
  )

INSERT INTO #tttt
VALUES      (1,NULL,'ABC'),
            (2,NULL,'DEF'),
            (3,1,'GHI')

SELECT a.childid,
       a.name,
       Isnull(b.name, 'No parent') AS Parent_Name
FROM   #tttt a
       LEFT JOIN #tttt b
              ON b.childid = a.parentid 
输出

childid name    Parent_Name
------  ----    ----------- 
1       ABC     No parent
2       DEF     No parent
3       GHI     ABC
干杯,伙计。ISNULL()函数是主要的绊脚石