小编gop*_*ath的帖子

复杂案例陈述T-SQL - 具有层次遍历.

我试图CASE在分层数据集上写一个复杂的语句.

这是包含样本数据的表:

Level  Parent     Child       IsDirector
----------------------------------------
0      NULL       SteveJobs     NO
1      SteveJobs  TimCook       YES
2      TimCook    Greg          NO
3      Greg       Mark          NO
4      Mark       Jack          NO
4      Mark       Kim           NO
4      Mark       Tyler         NO
4      Mark       Emma          NO
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个SQL查询来列出所有人的导演.在上面的示例中,这是SteveJobs担任首席执行官的IT团队的一部分,因此他不是董事.TimCook是董事,董事是Greg经理.经理是员工.

所以我想写一个查询来选择所有人和Director列中的相关Director Name,条件是如果它是CEO,那么它应该是NULL.

在我的现实生活数据中,有几位CEO,每位CEO都有多位董事,每位董事都有多名经理.这对我来说真的很复杂.

如果我写一个select*,结果应该是这样的.

Parent     Child        Director  IsDirector
------------------------------------
NULL       SteveJobs    NULL      NO
SteveJobs  TimCook      TimCook   YES
TimCook    Greg         TimCook   NO
Greg       Mark         TimCook   NO
Mark       Jack         TimCook   NO
Mark       Kim          TimCook   NO
Mark       Tyler        TimCook   NO
Mark …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case hierarchy

3
推荐指数
1
解决办法
400
查看次数

标签 统计

case ×1

hierarchy ×1

sql ×1

sql-server ×1

t-sql ×1