我想使用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
告诉我如何创建一个视图来获得此输出。
答案 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;