设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2582|回复: 0
打印 上一主题 下一主题

[分享]在SQL Server中返回分类的子类列表

[复制链接]
跳转到指定楼层
1#
发表于 2005-1-3 02:48:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*创建临时测试用表*/

create table tblClassTest

(

class_code char (20)

, class_name varchar(50)

, class_code_parent char(20)

)

insert into tblClassTest (class_code,class_name,class_code_parent)

select '01','原材料',null

union all select '0101','高压聚乙烯','01'

union all select '0102','低压聚乙烯','01'

union all select '0103','线性聚乙烯','01'

union all select '0104','色母料','01'

union all select '0106','其他原材料','01'

union all select '0105','回收原料','0106'

union all select '0109','回收高压聚乙烯','0105'

union all select '0107','丁烷气','0106'

union all select '0108','氮气','01'

go

/*

fun_getClassCodeListWithChild

返回分类的子类列表

最后更新:2005/01/02 goodidea (myad@yeah.net)

@intOption = 1  返回其子类

@intOption = 2  返回该类

@intOption = 3  返回该类及其子类

*/

create function fun_getClassCodeListWithChildren (

@ItemClass char(20)

,@intOption smallint = 2

) returns @tblItemClass table (

class_code char (20)

, class_name varchar(50)

, class_code_parent varchar(50)

)

as

begin

insert into @tblItemClass

select class_code, class_name,class_code_parent from tblClassTest

where class_code = @ItemClass

while @@rowcount >0 and (@intOption & 1 = 1)

begin

insert into @tblItemClass

select class_code, class_name,class_code_parent from tblClassTest

where class_code_parent in (select class_code from @tblItemClass )

and  class_code not in (select class_code from @tblItemClass )

end

if (@intOption & 2 <> 2) delete @tblItemClass where class_code = @ItemClass

return

end



go

/*显示测试结果*/

select * from fun_getClassCodeListWithChildren('01', default)

select * from fun_getClassCodeListWithChildren('01', 1)

select * from fun_getClassCodeListWithChildren('01', 3)

/*删除测试表和函数*/

drop function fun_getClassCodeListWithChildren

drop table tblClassTest
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-26 03:34 , Processed in 0.078856 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表