sql server實(shí)現(xiàn)遞歸查詢的方法示例
本文實(shí)例講述了sql server實(shí)現(xiàn)遞歸查詢的方法示例。分享給大家供大家參考,具體如下:
有時(shí)候面對(duì)樹(shù)結(jié)構(gòu)的數(shù)據(jù)時(shí)需要進(jìn)行遞歸查詢,網(wǎng)上找了一番,參考了各位大神的文章,發(fā)現(xiàn)蠻簡(jiǎn)單的,當(dāng)做個(gè)小筆記方便以后使用
sql server 通過(guò)CTE來(lái)支持遞歸查詢,這對(duì)查詢樹(shù)形或?qū)哟谓Y(jié)構(gòu)的數(shù)據(jù)很有用
一般的樹(shù)形表結(jié)構(gòu)如下,相信大家都很熟悉的
id | title | pid |
---|---|---|
1 | 1級(jí)節(jié)點(diǎn) | 0 |
2 | 2級(jí)節(jié)點(diǎn) | 1 |
3 | 3級(jí)節(jié)點(diǎn) | 2 |
4 | 4級(jí)節(jié)點(diǎn) | 3 |
5 | 5級(jí)節(jié)點(diǎn) | 4 |
下面上代碼
----------sql server 遞歸查詢---------- --查找上級(jí)所有節(jié)點(diǎn) with uCte as ( select a.id,a.title,a.pid from tree_table a where id = 3--當(dāng)前節(jié)點(diǎn) union all select k.id,k.title,k.pid from tree_table k inner join uCte c on c.pid = k.id ) select * from uCte; --查找上級(jí)所有節(jié)點(diǎn) with dCte as ( select a.id,a.title,a.pid from tree_table a where id = 3--當(dāng)前節(jié)點(diǎn) union all select k.id,k.title,k.pid from tree_table k inner join dCte c on c.id = k.pid ) select * from dCte;
更多關(guān)于SQL Server相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《SQL Server查詢操作技巧大全》、《SQL Server存儲(chǔ)過(guò)程技巧大全》、《SQL Server索引操作技巧大全》、《SQL Server常用函數(shù)匯總》及《SQL Server日期與時(shí)間操作技巧總結(jié)》
希望本文所述對(duì)大家SQL Server數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。
相關(guān)文章
SQL Server 2016正式版安裝配置過(guò)程圖文詳解
這篇文章主要為大家詳細(xì)介紹了SQL Server2016正式版安裝配置過(guò)程圖文教程,感興趣的小伙伴們可以參考一下2016-07-07SQL 外鏈接操作小結(jié) inner join left join right join
SQL 外鏈接操作小結(jié) inner join left join right join...2006-11-11SQLServer:探討EXEC與sp_executesql的區(qū)別詳解
本篇文章是對(duì)EXEC與sp_executesql的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06