17,377
社区成员
发帖
与我相关
我的任务
分享
--CTE递归查询
WITH lmenu(nav_id,nav_name,nav_parentid,level) as
(
SELECT top 100 nav_id,nav_name,nav_parentid,1 level FROM gs_nav where nav_id=68 order by nav_id
UNION ALL
SELECT a.nav_id,a.nav_name,a.nav_parentid, b.level+1 FROM gs_nav a,lmenu b where a.nav_parentid= b.nav_id
)
SELECT * from lmenu
这个帖子可以结了,下面来的人我会给分的DECLARE @table int --定义变量
DECLARE @id int --定义变量
DECLARE My_Cursor CURSOR --定义游标
FOR (select nav_id from gs_nav where nav_parentid=68 or nav_id=68) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH FROM My_Cursor into @table ; --读取第一行数据
WHILE @@FETCH_STATUS = 0
BEGIN
select nav_id,nav_name,nav_parentid from gs_nav where nav_parentid=@table
FETCH NEXT FROM My_Cursor into @table; --读取下一行数据
--set @id=id+@table
END
--select @id asaaaa
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO