数据库
首页 > 数据库> > sqlserver-把表中某一个列的数据按照逗号拼接成列表

sqlserver-把表中某一个列的数据按照逗号拼接成列表

作者:互联网

  1. 存储过程
create PROCEDURE [dbo].Sp_StringsToTableExtend
    @ColumnId VARCHAR(MAX) ,
    @ColumnName VARCHAR(MAX) ,
    @TableName NVARCHAR(100)
AS
    BEGIN
        DECLARE @sql VARCHAR(500) 
        SET @Sql='SELECT  A.'+@ColumnId+' ,  B.StrColumn
FROM    (SELECT StrXml = CONVERT(XML, ''<root><v>''+REPLACE('+@ColumnName+', '','', ''</v><v>'')+''</v></root>'') ,     '+@ColumnId+'  ,   '+@ColumnName+'    FROM   '
            +@TableName+'   ) A OUTER APPLY (SELECT StrColumn = N.v.value(''.'', ''nvarchar(40)'')  FROM   A.StrXml.nodes(''/root/v'') N (v)   ) B '
        EXEC  (@Sql)
    END 
GO  

原先表格数据 表【ClassInfo】
在这里插入图片描述

2.执行存储过程
EXEC [Sp_StringsToTableExtend] ‘班级编码’,‘课程信息’,‘ClassInfo’
3.结果:
在这里插入图片描述

这个是很久以前研究的SQL语句,也不知道当时是在什么业务需求下整出来的~哈哈哈哈。

标签:StrXml,VARCHAR,ColumnId,StrColumn,sqlserver,逗号,ColumnName,表中,SELECT
来源: https://blog.csdn.net/Ryomaku/article/details/100108735