Consulta troca linha por coluna

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Tenho uma tabela coma seguinte estrutura:

Nome
TipoFone
NumeroFone

Quando eu dou um select na tabela, ela lista assim:

Nome TipoFone NumeroFone
___________________________
n1 1 xxxxxxx
n1 2 xxxxxxx
n2 1 xxxxxxx

Gostaria de fazer um select que me devolvesse o seguinte:

Nome NumeroTipo1 NumeroTipo2 NumeroTipo3
n1 xxxxxxxx xxxxxxxxx
n2 xxxxxxxx
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tem como fazer isso com LISTAGG. (a partir do 11g)

Tipo assim:

Selecionar tudo

SELECT 
  Nome
, LISTAGG( NumeroFone, ',') within group (ORDER BY 1) Fones
FROM sua_tabela
Dá uma procurada por esse comando. :-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes