您的位置:首页 > 数据库

MSSQL中递归SQL查询语句实例说明-

2011-09-23 00:00 567 查看
一张表(ColumnTable)的结构如下图所示


当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID

递归实现SQL语句:
with znieyu as 
( 
select c.Id,c.FatherId,0 as lv1 from ColumnTable c where c.Number=67 
union all 
select c.Id,c.FatherId,lv1-1 from znieyu z 
inner join ColumnTable c 
on z.FatherId=c.Id 
) 
select znieyu.Id ,znieyu.FatherId,znieyu.lv1 as lv from znieyu

实现的效果:


满足条件67ID为6的递归-->6-->2(LV0)-->1(LV-1)-->0(LV-2)
满足条件67ID为8的递归-->8-->5(LV0)-->2(LV-1)-->1(LV-2)-->0(LV-3)
很简单的一个SQL递归,记录下来...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: