我有一个简单的字符串列表,它可以是任意长度的。我希望能够使用这个字符串列表,因为我会使用行集。有问题的应用程序针对SQL Server运行。如何将任意字符串列表转换为SQL行集?
为了更清楚,如果我做SELECT 'foo', 'bar', 'baz'
我在单行中获得'foo','bar'和'baz'作为字段。我希望将它们中的每一个看作是一个单独的行。
是否存在我缺少的SQL(或特定于SQLServer)函数或技术,或者我将不得不求助于使用外部脚本语言编写函数?
我有一个简单的字符串列表,它可以是任意长度的。我希望能够使用这个字符串列表,因为我会使用行集。有问题的应用程序针对SQL Server运行。如何将任意字符串列表转换为SQL行集?
为了更清楚,如果我做SELECT 'foo', 'bar', 'baz'
我在单行中获得'foo','bar'和'baz'作为字段。我希望将它们中的每一个看作是一个单独的行。
是否存在我缺少的SQL(或特定于SQLServer)函数或技术,或者我将不得不求助于使用外部脚本语言编写函数?
我可能会错过这一点....但;
SELECT 'foo'
UNION
SELECT 'bar'
UNION
SELECT 'baz'
那么,作为一个“技术”有
SELECT 'foo'
UNION ALL
SELECT 'bar'
UNION ALL
SELECT 'baz'
(在ALL
s为以覆盖你的一些字符串都相同的情况下 - UNION
没有ALL
将删除重复);但不知道更多关于你的情况,很难说这是否是你需要的...
用于包装语义的+1! – 2010-04-12 15:26:35
如果它将是一个任意长度,你可以使用一个PIVOT。我以前只做了几次,但它会做你所问的。
http://msdn.microsoft.com/en-us/library/ms177410.aspx
这也许不是最好的例子,但应该可以帮助你开始。
我认为UNPIVOT实际上可以更好地为此工作,但这些示例显示它并不完全符合我的要求。不过谢谢,这可能是我需要的东西。 – 2010-04-12 15:41:27
更可重复使用的解决方案是创建一个表值函数,如记录here.
这是我所需要的 - 谢谢! – 2010-04-12 15:41:44