Re: транспонировать динамическую таблицу - TSQL - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть таблица, созданная динамически с динамическими столбцами. Столбец A и столбец B являются статическими, а остальные столбцы создаются динамически на основе результатов другой таблицы. Рассмотрим следующий пример кода,

SELECT dutydate, dayname, shifts, myShift
    FROM   
       (SELECT column A, column B, dynamic column C, dynamic column D, dynamic column E, ...... (columns may increase)
           FROM temp) p
   UNPIVOT  
   (myShift FOR shifts IN ( dynamic column C, dynamic column D, dynamic column E, ...... (columns may increase) ))
AS unpvt;

временная таблица - это динамически создаваемая таблица. Есть ли способ транспонировать на основе приведенного выше сценария.

1 Ответ

0 голосов
/ 21 декабря 2011

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

т.е.

declare @cmd varchar(max), @list_of_dynamic_columns varchar(255)
set @list_of_dynamic_columns = 'co1, col2, col2'

set @cmd = 'SELECT dutydate, dayname, shifts, myShift
    FROM   
       (SELECT column A, column B, '+@list_of_dynamic_columns +' 
           FROM temp) p
   UNPIVOT  
   (myShift FOR shifts IN ( '+@list_of_dynamic_columns +' ))
AS unpvt;'

print @cmd -- to see what you executed
exec (@cmd)

Что вам нужно сделать, это просто создать список в @ list_of_dynamic_columns

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