设为首页 加入收藏

TOP

SQL 2000递归查询
2014-11-24 02:38:04 来源: 作者: 【 】 浏览:1
Tags:SQL 2000 查询

网上的做法都是不能以NUL为关键字进行递归查询,现修改如下,可以任意进行递归,记录备忘

--查询指定节点及其所有子节点的函数

alter FUNCTION GetLevel(@ID nvarchar(36))

RETURNS @t_Level TABLE(ID nvarchar(36),Level int)

AS

BEGIN

DECLARE @Level int

SET @Level=1

INSERT @t_Level SELECT @ID,@Level

if (@ID is null)

begin

SET @Level=@Level+1

INSERT @t_Level SELECT a.ID,@Level FROM Area a,@t_Level b WHERE a.XPath is null AND b.Level=@Level-1

end

WHILE @@ROWCOUNT>0

BEGIN

SET @Level=@Level+1

INSERT @t_Level SELECT a.ID,@Level FROM Area a,@t_Level b WHERE a.XPath=b.ID AND b.Level=@Level-1

END

RETURN

END

GO

调用方法

SELECT a.*

FROM Area a,GetLevel(null) b

WHERE a.ID=b.ID ORDER BY A.ID

作者 ascii

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle grant授权的理解 下一篇oracle绑定变量的语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: