- 存储过程
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语句,也不知道当时是在什么业务需求下整出来的~哈哈哈哈。