Fórum Resultado do select em uma só linha #26702

28/03/2007

0

Pessoal,

Tem como eu fazer um select que me retorne o seginte resultado a seguir em apenas uma linha concatenando o 3º campo?

Exemplo:

codigo data desc

1 22/02/2007 descricao1
1 22/02/2007 descricao2

Queria que o resultado do select fosse este:

1 22/02/2007 descricao1 / descricao2



Tem como fazer isso?

Estou usando Postgres. Mas se alguém tiver ideia em qualquer outro banco...

Desde já, agradeço-lhes...

Cristiano


Cristianojedi

Cristianojedi

Responder

Posts

08/10/2008

Jair Bg

pode ser num array? segue o exemplo...

SELECT tabela.codigo, data
, ARRAY (
SELECT tabnew.descricao
FROM tabela AS tabnew
WHERE (tabnew.codigo = tabela.codigo)
AND (tabnew.data = tabela.data)
) AS ary_descricao
FROM tabela
WHERE (tabela.codigo = 0)
ORDER BY tabela.codigo DESC NULLS FIRST

PS.: DB PostgreSQL 8.3, se concatenar veja como uma sub-query pode redefinir os campos de uma array


Responder

Gostei + 0

08/10/2008

Danilo Passos

Você pode usar a função de agregação array_accum, que faz algo similar ao que jair BG fez.

SELECT codigo, data, array_accum(descricao)
FROM tabela
GROUP BY codigo, data
ORDER BY codigo NULLS FIRST 


Se você quiser que ele retorne o resultado em uma string concatenada, você pode dar uma pesquisada e escrever a sua própria função de agregação.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar