Uma forma mais simples de transformar colunas em linhas é usar a função decode (do Oracle). Considere a seguinte tabela:
CREATE TABLE PESSOAS (
NOME VARCHAR2(200),
NOME_PAI VARCHAR2(200),
NOME_MAE VARCHAR2(200)
)
Se for necessário produzir uma lista com todos os nomes, pode-se usar o decode da seguinte maneira:
select decode(n, 1, nome, 2, nome_pai, 3, nome_mae)
from pessoas,
(select rownum n from pessoas where rownum<4)
A consulta com rownum serve apenas para produzir três linhas com os números 1, 2 e 3. Essa pequena tabela multiplica a tabela de pessoas por 3. O decode() então indica uma coluna diferente para cada valor de n. Assim, colocamos cada valor de coluna numa linha separada.
Nenhum comentário:
Postar um comentário