Преобразование строк в столбцы Teradata (PIVOT)

у меня есть такая таблица

Изображение таблицы 1

а также

я хочу, чтобы эта таблица была преобразована в

Изображение таблицы 2

Использование запроса TeraData


person Kalyan Ganta    schedule 23.04.2018    source источник
comment
эй Для TeraData следуйте этому, если это поможет forgetcode.com /teradata/1294-converting-columns-into-rows проверьте ссылку SQL Server stackoverflow.com/questions/15745042/   -  person Hardik Masalawala    schedule 23.04.2018
comment
Взгляните на эту тему: stackoverflow.com/q/49917409/2527905   -  person dnoeth    schedule 23.04.2018


Ответы (1)


Если вы знаете список значений, вы можете использовать условную агрегацию:

select max(case when name = 'AA' then value end) as aa,
       max(case when name = 'BB' then value end) as bb,
       max(case when name = 'CC' then value end) as cc,
       . . .
from t;

Если вы не знаете список значений, вы не можете сделать это с помощью простого SQL-запроса.

person Gordon Linoff    schedule 23.04.2018
comment
Привет, спасибо за ответ, он работает, когда имена столбцов являются статическими, но в моем случае имена столбцов и их значения изменяются динамически, поэтому вместо жесткого кодирования можно ли заставить его работать для динамически сгенерированной таблицы? - person Kalyan Ganta; 23.04.2018
comment
Динамически генерируемый SQL разрешен только в хранимых процедурах. Вы можете скомпилировать любой запрос как строку, а затем выполнить его. - person Alex; 24.04.2018