Informações de Linhas em uma coluna

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Reinaldommo
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Ter, 10 Jan 2017 9:04 am

Pessoal, venho novamente pedir uma ajuda sobre SQL..
Seguinte, tenho uma planilha da seguinte forma..

Selecionar tudo

Tag - item
01     01
01     02
01     03
02     01
02     02
03     01
03     02
Gostaria de saber se há alguma forma de transformar a coluna "Tag" em um registro único, trazendo as informações da coluna "Item" em uma coluna única separando por "\"... ficando assim

Selecionar tudo

Tag - Item
01     01/02/03
02     01/02
03     01/02
Tem como fazer assim em sql?
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Reinaldo, qual a versão do Oracle você está usando?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5023
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

Se for a partir do 11g, existe o LISTAGG.

Seria algo assim:

Selecionar tudo

select TAG
, listagg( CODE,'/') within group (order by TAG)
from TABELA
group by TAG
No meu caso:

Selecionar tudo

SQL> select geo_code_id
  2  , LISTAGG(code,'; ') within group (order by CODE) lista
  3  from countries
  4  group by geo_code_id
  5  /

GEO_CODE_ID LISTA
----------- ------------------------------
         21 BEL; FIN; FRA; ITA; USA
         22 HUN; ISL; LUX; NRD
         41 ROM; SVK
         42 AUT; CZE
         81 AUS; NZL
            CHE; DEU; DNK; ESP; GBR; IRL; NLD; NOR; POL; POR; SWE

6 rows selected

SQL> 
:-o
Responder
  • Informação
  • Quem está online

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