Как преобразовать произвольный список строк в набор строк SQL? - PullRequest
1 голос
/ 12 апреля 2010

У меня есть простой список строк, который может быть произвольной длины. Я хотел бы иметь возможность использовать этот список строк, как я бы использовал набор строк. Данное приложение работает на SQL Server.

Проще говоря, если я сделаю SELECT 'foo', 'bar', 'baz', я получу поля 'foo', 'bar' и 'baz' в виде одной строки. Я бы хотел видеть каждого из них в отдельном ряду.

Есть ли какая-либо функция (или метод, специфичная для SQLServer), которые мне не хватает, или мне придется прибегнуть к написанию функции на внешнем языке сценариев?

Ответы [ 4 ]

5 голосов
/ 12 апреля 2010

Ну, в качестве «техники» есть

SELECT 'foo'
UNION ALL
SELECT 'bar'
UNION ALL
SELECT 'baz'

(ALL должны охватывать случай, когда некоторые ваши строки одинаковы - UNION без ALL удалит дубликаты); но не зная больше о вашей ситуации, трудно сказать, если это то, что вам нужно ...

3 голосов
/ 12 апреля 2010

Возможно, я упускаю суть .... но;

SELECT 'foo'
UNION
SELECT 'bar'
UNION
SELECT 'baz'
1 голос
/ 12 апреля 2010

Более подходящим решением будет создание табличной функции, как описано здесь .

1 голос
/ 12 апреля 2010

Если это будет произвольная длина, вы можете использовать PIVOT. Я только сделал это несколько раз, но он сделает то, что вы просите.

http://msdn.microsoft.com/en-us/library/ms177410.aspx

Возможно, это не лучший пример, но он поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...