with as 作 union all的子查询 来避免多次扫描表


无意中看见,觉得很Nice的一段sql,先上菜

with ids as
(
    select *,0 as rank from dbo.NewsClass where Id=64
    union all
    select n.*,n1.rank+1 from dbo.NewsClass n join ids n1 on n.ParentCode=n1.Id
)
select Id from ids order by Id

这句sql针对有多级父子关系的情况,可以一次把当前Id及其子Id全部查出来

注意:NewsClass 是表明  ,Id=64 是查找Id=64及其子类Id


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM