2012-04-03 2 views
4

У меня есть следующий запросOracle: транспонирование таблица

SELECT 1, 2 FROM DUAL 

И я хотел бы что-то вроде

SELECT TRANSPOSE(SELECT 1, 2 FROM DUAL) 

Wich выдает такой же, как

SELECT 1 FROM DUAL 
UNION 
SELECT 2 FROM DUAL 

Я бы например, для обмена строк со столбцами.

+4

Какая версия Oracle это? –

ответ

5

Предполагая, что это Oracle 11, вы можете использовать UNPIVOT:

select no from 
(SELECT 1 a, 2 b FROM DUAL) dummy 
unpivot (no for col in (a as 'A', b as 'B')) 
0

Если у вас нет данных Oracle 11g, лучшим решением является тот, который вы при условии:

SELECT 1 FROM DUAL 
UNION 
SELECT 2 FROM DUAL 
Смежные вопросы