SQL Server根據(jù)子節(jié)點查詢所有父節(jié)點的代碼示例
作者:LyDevin
本文我們主要介紹了SQL Server根據(jù)子節(jié)點查詢所有父節(jié)點的代碼示例,初學(xué)者可以套用其格式即可完成子節(jié)點查詢所有父節(jié)點的功能,希望能夠?qū)δ兴鶐椭?/div>
SQL Server數(shù)據(jù)庫根據(jù)子節(jié)點查詢所有父節(jié)點的方法是本文我們主要要介紹的內(nèi)容,接下來我們就通過一個代碼示例來介紹這一過程的實現(xiàn)。
- create table tb(id varchar(3) , pid varchar(3) , name varchar(10))
- insert into tb values('001' , null , '廣東省')
- insert into tb values('002' , '001' , '廣州市')
- insert into tb values('003' , '001' , '深圳市')
- insert into tb values('004' , '002' , '天河區(qū)')
- insert into tb values('005' , '003' , '羅湖區(qū)')
- insert into tb values('006' , '003' , '福田區(qū)')
- insert into tb values('007' , '003' , '寶安區(qū)')
- insert into tb values('008' , '007' , '西鄉(xiāng)鎮(zhèn)')
- insert into tb values('009' , '007' , '龍華鎮(zhèn)')
- insert into tb values('010' , '007' , '松崗鎮(zhèn)')
- go
- --查詢指定節(jié)點及其所有父節(jié)點的函數(shù)
- create function f_pid(@id varchar(3)) returns @t_level table(id varchar(3))
- as
- begin
- insert into @t_level select @id
- select @id = pid from tb where id = @id and pid is not null
- while @@ROWCOUNT > 0
- begin
- insert into @t_level select @id select @id = pid from tb where id = @id and pid is not null
- end
- return
- end
- go
- --調(diào)用函數(shù)查詢002(廣州市)及其所有父節(jié)點
- select a.* from tb a , f_pid('002') b where a.id = b.id order by a.id
- /*
- id pid name
- ---- ---- ----------
- 001 NULL 廣東省
- 002 001 廣州市
以上的代碼就就實現(xiàn)了SQL Server根據(jù)子節(jié)點查詢所有父節(jié)點的功能,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
責(zé)任編輯:趙鵬
來源:
博客園


相關(guān)推薦




