^_^自己搞定了 --自定义函数(要注意的是不可能实现像sum那样的通用聚合函数)
alter function f_str(@typeid varchar(30)) returns varchar(8000)
as
begin
declare @ varchar(8000)
set @=''
select @=@+' '+ a.comment from a where comment is not null
and typeid=@typeidreturn(stuff(@,1,1,''))
end
go
alter function f_str(@typeid varchar(30)) returns varchar(8000)
as
begin
declare @ varchar(8000)
set @=''
select @=@+' '+ a.comment from a where comment is not null
and typeid=@typeidreturn(stuff(@,1,1,''))
end
go
如果是一个字段的值连接,先看连接条件,你列数据出来,让大家看清楚点。
create table tb (A varchar(10),B varchar(1000))
Insert into tb
select '111','AA0000,AA0001,AA0002,'
union all select '111','BB0000,BB0001,BB0002,'
union all select '222','AA0120,AA0102,AA1453,'
union all select '222','BB1212,BB3423,BB2123,'select * from tb--函數
create function dbo.fn_b(@a varchar(10))
returns varchar(1000)
as
begin
declare @s varchar(1000)
set @s=''
select @s=@s+[B] from tb where A=@a
return (@s)
end--刪除
drop table tb
drop function dbo.fn_b--結果
select A,B=dbo.fn_b(A) from tb group by A
A B
-------------------------------------------
111 AA0000,AA0001,AA0002,BB0000,BB0001,BB0002,
222 AA0120,AA0102,AA1453,BB1212,BB3423,BB2123,