SQL遍歷父子關(guān)系表的測(cè)試
作者:佚名
sql遍歷是我們經(jīng)常會(huì)遇到的問(wèn)題,下文對(duì)SQL遍歷父子關(guān)系表進(jìn)行了側(cè)四,如果您對(duì)此方面感興趣的話,不妨一看。
SQL遍歷父子關(guān)系表的方法未必人人都知道,下面就為您介紹一個(gè)SQL遍歷父子關(guān)系表的測(cè)試,希望可以讓您對(duì)SQL遍歷父子關(guān)系表有更深的認(rèn)識(shí)。
--建立測(cè)試環(huán)境
- Create Table A
- (ID Int,
- fatherID Int,
- Name Varchar(10)
- )
- Insert A Select 1, NULL, 'tt'
- Union All Select 2, 1, 'aa'
- Union All Select 3, 1, 'bb'
- Union All Select 4, 2, 'cc'
- Union All Select 5, 2, 'gg'
- Union All Select 6, 4, 'yy'
- Union All Select 7, 4, 'jj'
- Union All Select 8, 7, 'll'
- Union All Select 9, NULL, 'uu'
- Union All Select 10, 9, 'oo'
- GO
--建立函數(shù)
- Create Function GetChildren(@ID Int)
- Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))
- As
- Begin
- Insert @Tree Select ID, fatherID, Name From A Where fatherID = @ID
- While @@Rowcount > 0
- Insert @Tree Select A.ID, A.fatherID, A.Name From A A Inner Join @Tree B On A.fatherID = B.ID And A.ID Not In (Select ID From @Tree)
- Return
- End
- GO
--測(cè)試
- Select * From dbo.GetChildren(1)
- GO
--刪除測(cè)試環(huán)境
- Drop Table A
- Drop Function GetChildren
--結(jié)果
- /*
- IDfatherIDName
- 21aa
- 31bb
- 42cc
- 52gg
- 64yy
- 74jj
- 87ll
- */
【編輯推薦】
責(zé)任編輯:段燃
來(lái)源:
互聯(lián)網(wǎng)