程序和SQL都能做到,程序比较简单我就不说了。
SQL的办法一般是自定义函数
比如
Create Function fun1( @var1,@var2 )
as
begin
declare @ret varchar(8000) --返回值
declare @topNum int
declare @tmp varchar(8000)
set @topNum = 1
select 1 from 表a Where [name1列] = @@var1 And [00001列] = @@var2 --把rowCount赋值
set @topNum = @@rowcount()//取出来
while (@topNum() <> 0)
begin
select top @topNum @ret = mesg1 from 表a Where [name1列] = @@var1 And [00001列] = @@var2
set @ret = @ret + @tmp +',' //一个一个拼接上
set @topNum = topNum - 1
end
return @ret
end
调用的时候直接 Select *,fun1([name1列],[00001列]) From a 就行
我写的是伪代码没经过调试,也是笨方法,如果你的数据库支持游标的话那就更简单了,直接用游标提。