Как мне PIVOT в SQL Server с динамическими столбцами, значениями и типами данных? - PullRequest
2 голосов
/ 21 января 2012

У меня есть таблица, в которой хранятся данные следующим образом:

ID       ListId   ModuleId  RecordId    NValue    CValue  LValue  Caption  RowId
8cb5f604 c07cea6f 24cb218c  _01F15T1LJ  2.00000           False   Wire #   24cb218c
c023fe9e 2dcd56fe 24cb218c  _01F15T1LJ            Red     False   Label    24cb218c
4a74bd46 c07cea6f 24cb218c  _01F15T1LJ  1.00000           False   Wire #   24cb218d
30cae2cf 2dcd56fe 24cb218c  _01F15T1LJ            White   False   Label    24cb218d

Мне нужно повернуть дату на RowId и отобразить результаты примерно так:

RowId     Wire #   Label
24cb218d  1.00000  White
24cb218c  2.00000  Red

Я не могу понять, как заставить PIVOT работать таким образом.

Данные в таблицах, количестве столбцов и порядке открыты для редактирования конечным пользователем. Можно ли сделать это эффективно? Если да, то как.

1 Ответ

2 голосов
/ 21 января 2012

Этого можно добиться с помощью динамического TSQL (не забудьте использовать QUOTENAME, чтобы избежать атак с использованием SQL-инъекций):

[Обязательная ссылка на Проклятие и благословения динамического SQL ]

...