Transpor uma linha para muitas linhas Oracle
Pergunta
Eu tenho uma consulta que sempre retorna uma linha, com muitos colunas. Eu gostaria de transformar isso em 2 colunas e muitas linhas.
Resultados originais:
Col1, Col2, Col3, Col4
----------------------
val1, val2, val3, val4
O que eu quero:
ColName, Value
--------------
Col1, val1
Col2, val2
Col3, val3
Col4, val4
Isso é possível?
Editar (esclarecimento)
Estou procurando uma maneira automática de fazer isso. Ou seja, algo que eu posso passar resultados de qualquer consulta que retorne apenas 1 linha.
Solução
Você está usando o Oracle 11g? Você tentou pivô e não
Mais informações aqui.
Outras dicas
claro. Fazer
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
Acho que você não tem a versão do Oracle com o suporte do Build in Pivot Table. Infelizmente, nunca é um código muito limpo, pois você precisa construir cada linha.
Veja este post mais antigo para um exemplo
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow