Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Dividindo linhas em colunas no oracle


Você precisa usar uma consulta dinâmica aqui para obter a saída desejada:
SELECT Name,
       MIN(CASE WHEN ID_Type = 'PAN'      THEN ID_No ELSE NULL END) AS PAN,
       MIN(CASE WHEN ID_Type = 'DL'       THEN ID_No ELSE NULL END) AS DL,
       MIN(CASE WHEN ID_Type = 'Passport' THEN ID_No ELSE NULL END) AS Passport
FROM yourTable
GROUP BY Name

Você também pode tentar usar o PIVOT() embutido do Oracle função se você estiver executando a versão 11g ou posterior.