gms1127956047
2017-04-26 08:13
采纳率: 20%
浏览 8.2k

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • oyljerry 2017-04-26 08:35
    评论
    解决 无用
    打赏 举报
  • Gr_lbxx 2017-04-26 08:41

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

    评论
    解决 无用
    打赏 举报
  • 欧阳嘉 2017-04-26 08:50

    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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题