表A内容如下:
ID Description
1 Hello
1 Good Morning
2 Peter
2 Tome
2 Sean
变成如下形式:
ID Description
1 Hello,Good Morning
2 Peter,Tome,Sean
即把ID号相同的后面项的内容变成一行,请教如何用SQL语句完成。不要存储过程。
谢谢!!
多少个预知吗?
参考:
http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.9349634
--用函数
create function test(@id int)
returns varchar(8000)
as
begin
declare @sql varchar(8000)
set @sql=
select @sql=@sql+Description+, from 表 where ID=@id
set @sql=left(@sql,len(@sql)-1)
return(@sql)
end
--执行
select distinct ID,dbo.test(ID) as Description from 表
帮你ding
http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6941645
[交流]行列转换
--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=
select @str=@str+,+[Description] from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A
declare @sql varchar(8000)
set @sql = select name
select @sql = @sql + ,sum(case km when +km+ then cj end) [+km+]
from (select distinct km from test) as a
select @sql = @sql+ from test group by name
exec(@sql)
drop table test
呵呵我不会