sqlserver-把表中某一个列的数据按照逗号拼接成列表
作者:互联网
- 存储过程
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