--示例数据
create table tb(父物料 varchar(10),子物料 varchar(10))
insert tb select 'A1','B1'
union all select 'A1','B2'
union all select 'A1','B3'
union all select 'B1','C1'
union all select 'B1','C2'
union all select 'C1','D1'
union all select 'C1','D2'
go
--查询自定义函数
create function f_cid(
@物料 varchar(10)
)returns @re table(物料 varchar(10),[level] int)
as
begin
declare @l int
set @l=0
insert @re select 子物料,@l from tb where 父物料=@物料
while @@rowcount>0
begin
set @l=@l+1
insert @re select a.子物料,@l
from tb a,@re b
where a.父物料=b.物料 and b.[level]=@l-1
end
return
end
go