首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-09-16 
怎样写这个递归查询表fidpid10203143546078910fid5的上一级是 fid4 而 fid4的上一级是 fid3 再上一级

怎样写这个递归查询

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的话麻烦。要整函数。

热点排行