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