sql查询列出表内容

时间:2013-06-13 13:53:03

标签: sql sql-server sql-server-2008

我想使用SQL查询为后续表数据创建一个视图。

  empid  Name     Managerid

  1     Vinoth     Null

  2      Raja        1

  3      Ramu        6

  4      Ramesh      6

  5      Rajini      1

  6      Billa     Null 

我想以下面的格式显示上表内容:

  empid  Name     Managerid

  1     Vinoth     Null

  2      Raja        1


  5      Rajini      1

  6      Billa     Null 

  3      Ramu        6

  4      Ramesh      6

告诉我如何创建一个视图来获得此输出。

1 个答案:

答案 0 :(得分:2)

为什么所有负面投票?用户正在请求层次关系的深度优先排序。

因此,如果数据在表#t中(用表名替换):

;WITH cte AS (
    SELECT  empid, Name, Managerid, CAST(empid as varchar(max)) + '|' AS Ordering
    FROM    #t
    WHERE   Managerid IS NULL
    UNION ALL
    SELECT  #t.empid, #t.Name, #t.Managerid, cte.Ordering + CAST(#t.empid AS VARCHAR(MAX))  + '|'
    FROM    cte
            JOIN #t ON cte.empid = #t.Managerid 
)
SELECT  empid, Name, Managerid 
FROM    cte
ORDER BY Ordering;