Trazer o segundo registro de uma subquery
Boa Tarde procurei mas não achei a resposta no forem então resolvi criar este tópico, tenho pouco conhecimento Oracle então desculpe se o que vou perguntar é algo simples..
Vou dar um exemplo simples:
Tenho uma tabela de clientes e cores onde repete o cliente para cada cor selecionada:
Nunca terei mais que 3 Cores por cliente..
Clientes | Cores
Joao | Azul
Joao | Amarelo
Joao | Verde
Maria | Azul
Maria | Laranja
Carlos | Verde
Queria um resultado da sequinte forma:
Cliente | Cor1 | Cor2 | Cor3 |
Joao | Amarelo | Azul | Verde |
Maria | Azul | Laranja | |
Carlos | | | |
Tentei fazer uma subQuery
Select x.cliente,
(select cores from Tabela_A where x.cliente = cliente and ROWNUM = 1) as cor1,
(select cores from Tabela_A where x.cliente = cliente and ROWNUM = 2) as cor2,
(select cores from Tabela_A where x.cliente = cliente and ROWNUM = 3) as cor3
from Tablea_A x
Mas ele não retorna dados quando filtro ROWNUM =2 ou 3
Descobri que ao usar ROWNUM no WHERE ele recebe por default valor 1 então como resolver o meu problema?
CREATE TABLE dados(cliente VARCHAR(50),
cores VARCHAR(50));
INSERT INTO dados
VALUES('João', 'Azul'),
('João', 'Vermelho'),
('João', 'Amarelo'),
('Maria', 'Laranja'),
('Maria', 'Amarelo'),
('Carlos', 'Verde');Discussão (2)
Carregando comentários...