Concatenando linhas de uma tabela em uma única linha na consulta sql no oracle

Se você já precisou concatenar  várias linhas em uma única coluna, separando-as por vírgula, segue uma dica de como fazer essa consulta no exemplo  abaixo

Você tem uma TABELA tab_01 no seguinte formato :

“CAMPO”
—————
“familia”
“casais”
“saude”
“nerd”
“psiquiatria”

E você quer realizar uma consulta onde o conteúdo da tab_01 seja concatenado em uma única linha da seguinte forma

“CAMPO”
——————-
“casais,familia,nerd,psiquiatria,saude”

O consulta sql abaixo resolve seu problema no Oracle 10g ou superior

SELECT LTRIM(SYS_CONNECT_BY_PATH(CAMPO, ‘,’),’,’) CAMPO
FROM ( SELECT CAMPO,
ROW_NUMBER() OVER (ORDER BY CAMPO) FILA
FROM tab_01)
WHERE CONNECT_BY_ISLEAF = 1
START WITH FILA = 1 CONNECT BY PRIOR FILA = FILA – 1

 

No mysql você faz isso  com uma função chamada “group_concat”

 

3 comentários sobre “Concatenando linhas de uma tabela em uma única linha na consulta sql no oracle

  1. FILA – 1 não fuincuonou aqui =/

  2. SELECT LTRIM(SYS_CONNECT_BY_PATH(CAMPO, ‘, ‘),’, ‘) CAMPO
    FROM ( SELECT CAMPO,
    ROW_NUMBER() OVER (ORDER BY CAMPO) as FILA
    FROM tab_01)
    WHERE CONNECT_BY_ISLEAF = 1
    START WITH FILA = 1 CONNECT BY PRIOR FILA = (FILA-1)

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s