如何将CSV字符串转换为行?

时间:2011-04-17 06:33:35

标签: sql sql-server tsql sql-server-2008 string

如何在行中转置CSV字符串?在下面的示例中,行被转换为CSV字符串,但我想进行逆操作(将此字符串“Day,Evening,Night”拆分为行)?怎么做?

USE AdventureWorks
GO
-- Check Table Column
SELECT [Name]
FROM HumanResources.Shift
GO
-- Get CSV values
SELECT STUFF(
(SELECT ',' + s.Name
FROM HumanResources.Shift s
ORDER BY s.Name
FOR XML PATH('')),1,1,'') AS CSV
GO

该示例来自here

2 个答案:

答案 0 :(得分:1)

规范参考中有几种技巧:Arrays and Lists in SQL Server 2005 and Beyond作者:Erland Sommarskog

我们使用数字表技术

答案 1 :(得分:1)

我建议使用用C#编写的UDF - 相对容易开发(如果你熟悉C#),并且是执行时最快的选择。

阅读gbn提供的参考资料将更深入地理解这一主题,但肯定会花费更长时间。