日期:2014-05-18  浏览次数:20419 次

处理树型数据 在线等 马上结
表   tree

tid           tname           parentid
1               中国                   0
2               美国                   0
3               河北                   1
4               北京                   1
5               加利福尼亚       2
6               海淀区               4
7               西城区               4
8               中关村               6
9               德外大街           7
………………………………

我想写个sql   或者   存储过程     传个   id进去   得到该id下所有的节点
例如  
传     0   得到全部

传     1   得到
1               中国                   0
3               河北                   1
4               北京                   1
6               海淀区               4
7               西城区               4
8               中关村               6
9               德外大街           7

传     2   得到

2               美国                   0
5               加利福尼亚       2

传       4   得到

4               北京                   1
6               海淀区               4
7               西城区               4
8               中关村               6
9               德外大街           7

…………………………

------解决方案--------------------
--建立測試環境
Create Table tree
(tid Int,
tname Nvarchar(20),
parentid Int)
Insert tree Select 1, N '中国 ', 0
Union All Select 2, N '美国 ', 0
Union All Select 3, N '河北 ', 1
Union All Select 4, N '北京 ', 1
Union All Select 5, N '加利福尼亚 ', 2
Union All Select 6, N '海淀区 ', 4
Union All Select 7, N '西城区 ', 4
Union All Select 8, N '中关村 ', 6
Union All Select 9, N '德外大街 ', 7 <