zoukankan      html  css  js  c++  java
  • 无限级根据Id获得所有子节点数据

    if exists (select 1
                from  sysobjects
               where  id = object_id('tb1')
                and   type = 'U')
       drop table tb1
    go
    create table tb1 (
       Id                   int                  null,
       name                 varchar(50)          null,
       pId                  int                  null,
       level int,
       sort int
    )
    go
    
    if exists (select * from sysobjects where name='proc_menu_select')
    drop procedure proc_menu_select
    go
    create proc proc_menu_select(@id int,@t int)
    as
        declare @i int 
        declare @count int, @tmpid int
        create table #tb(id int,name varchar(50),pId int,level int,sort int)
        select @count=COUNT(1) from tb_Menu where pId=@id
        insert #tb select m.id,m.name,m.pId,m.level,m.sort from tb_Menu m  where pId=@id
        select @i=level from tb_Menu where id=@id
                while(@count<>0)
                    begin
                    set @i=@i+1
                    print @i
                      select @count=COUNT(1) from tb_Menu m left join #tb on #tb.id=m.pId where #tb.level=@i
                      insert #tb select m.id,m.name,m.pId,m.level,m.sort from tb_Menu m left join #tb on #tb.id=m.pId where #tb.level=@i
                    end    
                select id,name,pId,level,sort from #tb
    go
    
    
    
    exec proc_menu_select 3,1
    select * from tb_Menu;
    select * from tb1
  • 相关阅读:
    python timeit模块用法
    boto3库限速
    golang-Beego-orm创建的坑
    Java07
    Java06
    Java04
    Java03
    c
    Mac 安装GCC
    命令: go build
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/3450134.html
Copyright © 2011-2022 走看看