sql server實(shí)現(xiàn)遞歸查詢的方法示例
本文實(shí)例講述了sql server實(shí)現(xiàn)遞歸查詢的方法示例。分享給大家供大家參考,具體如下:
有時(shí)候面對(duì)樹結(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ì)查詢樹形或?qū)哟谓Y(jié)構(gòu)的數(shù)據(jù)很有用
一般的樹形表結(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ì)有所幫助。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信