这篇博客宗旨在于处理如何使用sql把带逗号的数据转换为表中的行以及将表中的行拼接成用逗号组成的数据。
具体代码如下功能写在注释里
--将有逗号的数据转换为一个表存储id加数据 GODECLARE @Text VARCHAR(200)SET @Text = 'test1,test2'DECLARE @xml XMLSET @xml = CONVERT(XML,'<a>'+ REPLACE(@Text,',','</a><a>')+'</a>')CREATE TABLE #TMP1( iID VARCHAR(50), sText VARCHAR(200))INSERT INTO #TMP1SELECT NEWID(),b.valueFROM (SELECT @xml AS 'XML') aCROSS APPLY (SELECT Tb.a.value('.','VARCHAR(200)') as value FROM a.xml.nodes('/a') AS Tb(a)) bSELECT * FROM #TMP1GO--将一个Table中某一列的数据拼成逗号分隔的形式GO CREATE TABLE #TMP2 ( iID INT, sText VARCHAR(200) ) INSERT INTO #TMP2( iID, sText ) VALUES ( 1, 'test1'); INSERT INTO #TMP2( iID, sText ) VALUES ( 1, 'test2'); DECLARE @TMP2RES VARCHAR(200) SET @TMP2RES = (SELECT sText+',' FROM #TMP2 FOR XML PATH('')) SET @TMP2RES = SUBSTRING(@TMP2RES,0,LEN(@TMP2RES)-1) SELECT @TMP2RESGO
运行结果如图