sql 根据根节点遍历所有叶子
2009-03-19 12:35
260 查看
不使用CTE也就是with因为限制太多,比如不能使用参数
declare @startId int
select @startId = id from externalstatus where statusname = @rootStatusName
declare @backtrace table(id int,lvl int)
declare @id int
set @id = @startId
declare @lvl int
set @lvl=0
insert @backtrace select id, @lvl from externalstatus where id = @id
while @@rowcount>0
begin
set @lvl=@lvl+1
insert @backtrace select [status].id, @lvl
from externalstatus [status],@backtrace backtrace
where [status].pid=backtrace.id
and backtrace.lvl=@lvl-1
end
declare @startId int
select @startId = id from externalstatus where statusname = @rootStatusName
declare @backtrace table(id int,lvl int)
declare @id int
set @id = @startId
declare @lvl int
set @lvl=0
insert @backtrace select id, @lvl from externalstatus where id = @id
while @@rowcount>0
begin
set @lvl=@lvl+1
insert @backtrace select [status].id, @lvl
from externalstatus [status],@backtrace backtrace
where [status].pid=backtrace.id
and backtrace.lvl=@lvl-1
end
相关文章推荐
- sql 遍历二叉树所有子节点
- SQL_存储过程——获得一棵树的所有叶子节点
- 通过叶子节点,搜索所有父亲节点。最后再相加的sql语句。
- js递归遍历数组获取所有的叶子节点
- SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点(转)
- SQL - 根据父节点查询所有子节点
- XPath遍历输出XML所有叶子节点
- SQL - 根据子节点查询所有父节点
- sql 语句:根据父节点查找所有子节点
- SQL - 根据父节点查询所有子节点
- sql 根据父节点查找所有子节点
- 在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点)
- SQL 遍历父子关系表(二叉树)获得所有子节点
- 根据根节点获取所有的子节点SQL语句
- sql 根据父节点查找所有子节点
- SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点(转)
- 数据库 SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点
- SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点(转)
- SQL 递归查询(根据指定的节点向上获取所有父节点,向下获取所有子节点)
- 不使用递归和堆栈,遍历二叉树所有叶子节点的算法