У меня есть таблица в указанном ниже формате:Использование Pivot Функция слияния множества столбцов в Oracle
id colA1 colB1 colA2 colB2
1 100 499 500 999
Мне нужно это в приведенном ниже формате,
id colA colB
1 100 499
1 500 999
Я попытался с помощью unpivot
метод, но это дает, как показано ниже,
colA colB
100 499
100 999
500 499
500 999
запросов используется
select * from (select colA, colB from my_table
unpivot
(colA for ColNm1 in(
colA1,
colA2
))
unpivot
(colB for ColNm2 in(
colB1,
colB2
));
Я в состоянии сделать это с помощью union, но я хочу, чтобы он был реализован с помощью метода univot. –
... и не зря: я считаю, что UNION ALL будет означать, что базовая таблица читается дважды, а UNPIVOT читает ее только один раз. – mathguy
@mathguy Unpivot имеет лучшую производительность при выполнении. –