求一条SQL语句,如何将多行的数据整合成一行
表数据是这样的:
F_User_ID F_Dept_Name
----------- --------------------------------------------------
2 信息部
2 财务部
2 生产技术中心
4 信息部
5 科技部
5 财务部
我要整合成这样:
F_User_ID F_Dept_Name
----------- --------------------------------------------------
2 信息部,财务部,生产技术中心
4 信息部
5 科技部,财务部
不用游标怎么解决?在线等,解决后就给分,请各路高手赐教!谢谢
------解决方案--------------------剛有類似的,參考
http://community.csdn.net/Expert/topic/5446/5446407.xml?temp=.2094843
------解决方案--------------------create function fn_test(@F_User_ID int)
returns varchar(50)
AS
begin
declare @s varchar(50)
set @s= ' '
select @s=@s+ ', '+F_Dept_Name from 表 where F_User_ID=@F_User_ID
set @s=stuff(@s,1,1, ' ')
return @s
end
Go
select F_User_ID,dbo.fn_test(F_User_ID) as F_Dept_Name
from 表 group by F_User_ID
------解决方案--------------------returns varchar(50)
太小氣了,才定義50,等會截斷了就麻煩了。
在playwarcraft的基礎上修改下.
create function fn_test(@F_User_ID int)
returns varchar(5000)
AS
begin
declare @s varchar(5000)
set @s= ' '
select @s=@s+ ', '+F_Dept_Name from 表 where F_User_ID=@F_User_ID
set @s=stuff(@s,1,1, ' ')
return @s
end
Go
select F_User_ID,dbo.fn_test(F_User_ID) as F_Dept_Name
from 表 group by F_User_ID