读书人

怎样写这个递归查询,该怎么处理

发布时间: 2012-09-16 17:33:16 作者: rapoo

怎样写这个递归查询

fid pid
1 0
2 0
3 1
4 3
5 4
6 0
7
8
9
10

fid=5的上一级是 fid=4 而 fid=4的上一级是 fid=3 再上一级为0就是最大的一级
想查询条件 fid=4时候返回 3,1,0

[解决办法]
BOM精华帖。
2K5 CTE
2K的话麻烦。要整函数。
[解决办法]

SQL code
--> 测试数据: @Tdeclare @T table (fid int,pid int)insert into @Tselect 1,0 union allselect 2,0 union allselect 3,1 union allselect 4,3 union allselect 5,4 union allselect 6,0--得到某节点的所有父节点;with maco as(select * from @T where fid=4union allselect a.* from @T a ,maco b where a.fid=b.pid)select * from maco order by fid/*fid         pid----------- -----------1           03           14           3*/
[解决办法]
这头像是小齐嘛?要是是的话,难得啊!
探讨
BOM精华帖。
2K5 CTE
2K的话麻烦。要整函数。

读书人网 >SQL Server

热点推荐