如何用sql语句将一列的多行变为一行用逗号隔开

情况是这样的,有一个表dbo.SystemPositionInMenu,里面有Id,menucode (即权限对应的编码),positionname (即职位名称)三个字段。 现在要在里面新增加positionname为操作经理和普通操作。。然后操作经理有很多个menucode,现在需要 把很多个menucode放在一行用逗号隔开。该怎么写语句呢??

sql

4个回答

用wm_concat(''''||字段||'''') 试一下

try

 select group_concat(menucode) from dbo.SystemPositionInMenu group by positionname

if exists(select 1 from sysobjects where name='getstring' )
BEGIN
drop function getString
END
go
create function getstring(@positionname int)
RETURNs nvarchar(500)
AS
BEGIN
declare @menucode nvarchar(300),@sumname nvarchar(500)
declare cscursor cursor for select menucode from emp where emp.positionname=@positionname
set @sumname=''
open cscursor
fetch next from cscursor into @menucode
while @@fetch_status=0
BEGIN
set @sumname=@sumname+','+@menucode
fetch next from cscursor into @menucode
end
return @sumname
END

go

select positionname,dbo.getstring(positionname) from emp
GROUP BY positionname

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问