查询所有子栏目的表值函数的sql语句
来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:42 点击:次
前面,给了一个用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
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>