SQL Server循环数据查询

时间:2014-10-25 19:03:18

标签: sql sql-server

我有一个简单的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服务器的新手,我不确定如何处理这个问题。我试图搜索但是徒劳无功。任何意见将不胜感激

1 个答案:

答案 0 :(得分:2)

一个简单的left outer join将完成这项工作。试试这个

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