实名认证用户熊川湘 身份证号码430811198506290914

sql 根据关系表查找相应的父子类的数据

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
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create Function [dbo].[GetParent](@ID Int)
Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))
As
Begin
Insert @Tree Select ID, fatherID, Name From A Where ID = @ID
While @@Rowcount > 0
Insert @Tree Select A.ID, A.fatherID, A.Name From A A Inner Join @Tree B On A.ID = B.fatherID And A.ID Not In (Select ID From @Tree)
Return
End

--測試
Select * From dbo.GetParent(4)

posted @ 2010-09-06 14:19  浪达短信群发  阅读(158)  评论(0编辑  收藏  举报