sql server實(shí)現(xiàn)遞歸查詢的方法示例
本文實(shí)例講述了sql server實(shí)現(xiàn)遞歸查詢的方法示例。分享給大家供大家參考,具體如下:
有時(shí)候面對樹結(jié)構(gòu)的數(shù)據(jù)時(shí)需要進(jìn)行遞歸查詢,網(wǎng)上找了一番,參考了各位大神的文章,發(fā)現(xiàn)蠻簡單的,當(dāng)做個(gè)小筆記方便以后使用
sql server 通過CTE來支持遞歸查詢,這對查詢樹形或?qū)哟谓Y(jié)構(gòu)的數(shù)據(jù)很有用
一般的樹形表結(jié)構(gòu)如下,相信大家都很熟悉的
| id | title | pid |
|---|---|---|
| 1 | 1級節(jié)點(diǎn) | 0 |
| 2 | 2級節(jié)點(diǎn) | 1 |
| 3 | 3級節(jié)點(diǎn) | 2 |
| 4 | 4級節(jié)點(diǎn) | 3 |
| 5 | 5級節(jié)點(diǎn) | 4 |
下面上代碼
----------sql server 遞歸查詢---------- --查找上級所有節(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; --查找上級所有節(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ǔ)過程技巧大全》、《SQL Server索引操作技巧大全》、《SQL Server常用函數(shù)匯總》及《SQL Server日期與時(shí)間操作技巧總結(jié)》
希望本文所述對大家SQL Server數(shù)據(jù)庫程序設(shè)計(jì)有所幫助。
相關(guān)文章
SQL 外鏈接操作小結(jié) inner join left join right join
SQL 外鏈接操作小結(jié) inner join left join right join...2006-11-11
SQLServer:探討EXEC與sp_executesql的區(qū)別詳解
本篇文章是對EXEC與sp_executesql的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

