所以这里是起点
CREATE TABLE #Data (
ID INT IDENTITY(1,1),
MyData VARCHAR(200)
)
INSERT INTO #Data (Data) VALUES ('Test123, Test678')
INSERT INTO #Data (Data) VALUES ( 'abcd, efgh, mnop')
我想从 MyData 列解析逗号分隔的数据并将其关联回相关 ID。所以最后的结果会是
ID ParsedData
--------------
1 Test123
1 Test678
2 abcd
2 efgh
2 mnop
我可以通过游标来做到这一点,但我想避免它。有没有更好的方式来为它编写查询?
最佳答案
执行此操作的最佳方法是 much controversy 的主题并且还取决于字符串的长度、分隔符的频率、并发使用、并行计划的适用性、结果是否将用于 JOIN
操作...
Erland Sommarskog does some performance tests here .
我已经链接到下面使用数字表的 Adam Machanic 的 TSQL 拆分函数。上面的链接中还有一个负载。
SELECT ID,OutParam
FROM #Data
CROSS APPLY dbo.SplitString(MyData,',')
关于sql - 我可以避免在这里使用游标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156787/