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 join allNotes parentNote

本文介绍了在SQL中如何使用With As语句处理层级关系数据,以解决查询效率低和可能遗漏的问题。通过示例代码展示With As如何创建临时表并利用Union All和Inner Join实现递归查询,提高查询速度和可读性。同时提到了maxrecursion选项的使用,以防止递归超限错误。
最低0.47元/天 解锁文章
21万+

被折叠的 条评论
为什么被折叠?



