create table tmp
(
id int,
number varchar(10),
name varchar(10)
)godeclear @t varchar(10)
select @t='A'
insert into tmp select id, number, name from 你的表 where number in (select number from 你的表 where name=@t)
while @@rowcount<>0
insert into tmp select id, number, name from 你的表 where number in (select number from 你的表 where name in (select distinct name from tmp))
endselect distinct id from tmpdrop table tmp
(
id int,
number varchar(10),
name varchar(10)
)godeclear @t varchar(10)
select @t='A'
insert into tmp select id, number, name from 你的表 where number in (select number from 你的表 where name=@t)
while @@rowcount<>0
insert into tmp select id, number, name from 你的表 where number in (select number from 你的表 where name in (select distinct name from tmp))
endselect distinct id from tmpdrop table tmp
(
id int,
number varchar(10),
name varchar(10)
)godeclear @t varchar(10)
select @t='A'
insert into tmp select id, number, name from 你的表 where number in (select number from 你的表 where name=@t)
while @@rowcount<>0
insert into tmp
select id, number, name from 你的表
where
number in
(select number from 你的表 where name in (select distinct name from tmp))
and not exist (select id from tmp where tmp.id=你的表.id)
endselect distinct id from tmpdrop table tmp
insert into test select 1,'001','A'
insert into test select 2,'001','B'
insert into test select 3,'002','C'
insert into test select 4,'003','B'
insert into test select 5,'003','D'
insert into test select 6,'004','E'
insert into test select 7,'004','D'
insert into test select 8,'004','C'
insert into test select 9,'005','F'
gocreate function f_str(@Name varchar(4))
returns varchar(100)
as
begin
declare @ret varchar(100)
declare @t table(ID int,Number varchar(4),Name varchar(4))
insert @t select * from test where Name=@Name
while @@rowcount<>0
begin
insert into @t
select a.* from test a,@t b
where
(a.Number=b.Number or a.Name=b.Name)
and
not exists(select 1 from @t where ID=a.ID)
end
set @ret=''
select @ret=@ret+','+rtrim(ID) from (select distinct ID from @t) a
set @ret=stuff(@ret,1,1,'')
return @ret
end
goselect dbo.f_str('B') as Code
go/*
Code
-----------------------------
1,2,3,4,5,6,7,8
*/drop function f_str
drop table test
set @ret=stuff(@ret,1,1,'')请问:这两句是什么意思呀。。
那是把符合要求的记录的ID用逗号连成字符串,然后去掉第一个字符,即逗号.==========谢谢两位,结账