查询所有子栏目的表值函数

create function myFun(@id as int)    --创建表函数名称,参数是id获取其他,
returns @temp table                    --这里返回一个自己创建的表,里面的字段根据自己的需要设
(
    [id] int,  
    [Name] varchar(100), 
    [parentid] int, 
    [levels] int        --这里说明一下,上面的字段是根据自己要取数据的表而定的,levels表示栏目层次的,是必须有的!
)
as 
begin        
    declare @level as int    --声明一个变量,用于保存栏目信息层次索引
    select @level = 0
    insert into @temp select id,Name,parentid,@level from Sub where id=@id
--先根据id获取根据节点的数据,@level初始为0,表示根目录
    while @@rowcount >0
        begin
            set @level=@level+1        --设置每一层子栏目层次索引
            insert into @temp
            select a.id,a.Name,a.parentid,@level from Sub a inner join @temp t
            on a.parentid=t.id and t.levels=@level-1
            --根据该栏目的父节点,查询该层次的栏目信息
        end 
    return    --这里别忘了return,不然不给查询哦!
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值