Создание строк в столбцах с использованием SQL-запроса - PullRequest
0 голосов
/ 07 мая 2010

У меня есть временная таблица, в которой есть один столбец с четырьмя строками.

Table
------
vaibhav
IBM
12
'T'

Мне нужна временная таблица

Col1     Col2    Col3     Col4
------   -----  -----    ------ 
Vaibhav  IBM      12       'T'

У кого-нибудь есть идеи?

Ответы [ 2 ]

3 голосов
/ 07 мая 2010

Я полагаю, вы ищете предложение Pivot, прямо из msdn ...

Вы можете использовать реляционные операторы PIVOT и UNPIVOT, чтобы изменить табличное выражение в другую таблицу.PIVOT поворачивает табличное выражение, превращая уникальные значения из одного столбца в выражении в несколько столбцов в выходных данных, и выполняет агрегирование, где они требуются, для любых оставшихся значений столбцов, которые требуются в конечном выводе.UNPIVOT выполняет операцию, противоположную PIVOT, вращая столбцы табличного выражения в значения столбцов.

Подробнее см. msdn article .

0 голосов
/ 07 мая 2010

Проблема со стандартным оператором PIVOT заключается в том, что вам нужно знать значения столбцов перед тем, как вы сможете определить их в выражении «FOR xxx IN ('x', 'y', 'x' ...)" .

Чтобы обойти это, вам нужно выполнить динамический SQL и создать строку, содержащую столбцы.

Интересная статья на эту тему здесь:

http://www.simple -talk.com / сообщества / блоги / Андраш / Архив / 2007/09/14 / 37265.aspx

Я построил много запросов PIVOT, используя эту технику, и, несмотря на то, что динамический SQL не может быть оптимизирован так же, как хранимые процедуры, которые жестко запрограммированы, они работают хорошо.

При необходимости я могу опубликовать пример кода.

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