将CSV转换为行

时间:2015-09-18 08:22:53

标签: sql-server sql-server-2008 csv

我将CSV数据存储在SQL Server 2008的一列中。

[PKID] [DataCSV]
1      1,2,4
2      3,5

以下内容会将该数据转换为行...

; WITH [XmlTable] AS (
   SELECT [PKID], 
          CAST('<d><i>' + REPLACE([MyData],',','</i><i>') + '</i></d>' AS XML) AS [MyDataXml]
   FROM [MyTable]
)
SELECT [PKID],
  CX.value('.','int') AS [DataItem]
FROM [XmlTable]
  CROSS APPLY [MyDataXml].nodes('/d/i') AS CX(CX)

使用正确/期望/想要的结果......

[PKID] [DataItem]
1      1
1      2
1      4
2      3
2      5

我的问题是,如果不使用CTE / XML,是否有更好,更有效,更可接受的方法来实现同样的目标?

0 个答案:

没有答案