首页 电脑 电脑学堂 查看内容

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

2012-6-5 16:42 731 0

摘要: 前面,给了一个用sql写的根据栏目ID,获取该栏目下所有的子栏目信息。在我们开发过程中,很有可能遇到多表联合查询的情况,这里我有写了一个表值函数也是关于查询子栏目的,好处就是可以当作函数调用那样使用,...
关键词: nbsp level 栏目 层次 parentid 一个 函数 查询 目的 temp

前面,给了一个用sql写的根据栏目ID,获取该栏目下所有的子栏目信息。在我们开发过程中,很有可能遇到多表联合查询的情况,这里我有写了一个表值函数也是关于查询子栏目的,好处就是可以当作函数调用那样使用,并且返回数据集合,其中还有栏目的层次关系。    1 create function myFun(@id as int)    --创建表函数名称,参数是id获取其他,  2 returns @temp table                    --这里返回一个自己创建的表,里面的字段根据自己的需要设  3 (  4     [id] int,    5     [Name] varchar(100),   6     [parentid] int,   7     [levels] int        --这里说明一下,上面的字段是根据自己要取数据的表而定的,levels表示栏目层次的,是必须有的!  8 )  www.2cto.com    9 as  10 begin         11     declare @level as int    --声明一个变量,用于保存栏目信息层次索引 12     select @level = 0 13     insert into @temp select id,Name,parentid,@level from Sub where id=@id 14 --先根据id获取根据节点的数据,@level初始为0,表示根目录 15     while @@rowcount >0 16         begin 17             set @level=@level+1        --设置每一层子栏目层次索引 18             insert into @temp 19             select a.id,a.Name,a.parentid,@level from Sub a inner join @temp t 20             on a.parentid=t.id and t.levels=@level-1 21             --根据该栏目的父节点,查询该层次的栏目信息 22         end  23     return    --这里别忘了return,不然不给查询哦! 24 end        作者 Suvens
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部