实现无限级树结构

表结构如下:

数据库 

id  path    title          sort     排序
1    0        首页         0
2    0,1      新闻        1
3    0,2      JAVA      2
4    0,3      JSP           3
5    0,2,3    业界动态    2
6    0,2,3    国内新闻    1

创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去

 

create  procedure test
as
begin
declare @len int
declare @str varchar(20)
declare @menuid varchar(20)
declare @name1 varchar(20)
declare @newtable table(id varchar(20),name varchar(20))

--这里在实现过程中是将排序ti和深度path结合,目的是为了实现子菜单的排序,其最好用id+path结合成新的path

--对理解会更有好处
insert into @newtable SELECT path+','+convert(varchar(10),m.sort) as newPath, m.name FROM testtree m  order by newPath,sort

declare  mycur cursor
for
  select * from @newtable
  open mycur
       fetch next from mycur
 into @menuid,@name1
  while @@fetch_status=0
        begin
    set @str=' '
     set @len=len(@menuid)
           --if(len(@menuid)=3)
   while(@len-3>0)
   begin
            set @str=@str+' '
            set @len=@len-1
    end
    print @str+'+'+@name1

     fetch next from mycur
 into @menuid,@name1
 end 
   close mycur
   deallocate mycur
end

go
execute test

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

afeilxc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者