Resultado do select em uma só linha
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
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
Curtidas 0
Respostas
Jair Bg
28/03/2007
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
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
GOSTEI 0
Danilo Passos
28/03/2007
Você pode usar a função de agregação array_accum, que faz algo similar ao que jair BG fez.
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.
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.
GOSTEI 0