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
  

Mensagemem Qua, 11 Jan 2017 10:03 am

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

Código: Selecionar todos
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

Código: Selecionar todos
Tag - Item
01     01/02/03
02     01/02
03     01/02


Tem como fazer assim em sql?
Reinaldommo

Mensagemem Qua, 11 Jan 2017 10:12 am

Reinaldo, qual a versão do Oracle você está usando?
spernega
Localização: São Paulo - SP

Mensagemem Qua, 11 Jan 2017 10:27 am

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

Seria algo assim:
Código: Selecionar todos
select TAG
, listagg( CODE,'/') within group (order by TAG)
from TABELA
group by TAG


No meu caso:
Código: Selecionar todos
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
dr_gori
Localização: Seattle, WA, USA

Thomas F. G



Voltar para SQL

Quem está online

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