Транспонировать один ряд в несколько рядов Oracle - PullRequest
3 голосов
/ 26 февраля 2010

У меня есть запрос, который всегда возвращает одну строку с многими столбцами. Я хотел бы превратить это в 2 столбца и много строк.

Исходные результаты:

Col1, Col2, Col3, Col4
----------------------
val1, val2, val3, val4

Что я хочу:

ColName, Value
--------------
Col1,    val1
Col2,    val2
Col3,    val3
Col4,    val4

Возможно ли это?

РЕДАКТИРОВАТЬ (уточнение)

Я ищу автоматический способ сделать это. То есть я могу передать результаты любого запроса, который возвращает только 1 строку.

Ответы [ 3 ]

3 голосов
/ 26 февраля 2010

уверен. У

select 'Col1' ColName, Col1 Value from srctable union all
select 'Col2', Col2 from srctable union all
select 'Col3', Col3 from srctable union all
select 'Col4', Col4 from srctable
2 голосов
/ 26 февраля 2010

Вы используете Oracle 11g? Вы пробовали разворачивать и разворачивать?

Подробнее здесь .

0 голосов
/ 26 февраля 2010

Полагаю, у вас нет версии Oracle со встроенной поддержкой сводных таблиц. К сожалению, этот код никогда не бывает очень чистым, так как вы должны создавать каждую строку.

См. Этот старый пост для примера

транспонировать-Select-результаты-с-оракула

...