SQL 中使用With As处理层级关系小记
当遇见数据中需要查询上下级关系,并且不知道到底有多少层级的时候,如果我们按照while循环语句来查询的话,效率低下并且很有可能还会出错,找不全所有的上下级;这个时候就需要使用一种叫With As的语句来帮助我们快速的循环嵌套我们需要的数据。
先上代码:
with allNotes(UserID,LeaderID) as (
SELECT UserID,LeaderID FROM [dbo].[RightGroupAccessLevelsOfPositions]
where LeaderID = @UserID
union all
select ChildNote.UserID,ChildNote.LeaderID
from [dbo].[RightGroupAccessLevelsOfPositions] ChildNote
inner