Em 28 de fevereiro de 2014 09:53, Fabrízio de Royes Mello <
[email protected]> escreveu:

> On 27-02-2014 18:12, Carlos Antônio Pereira (VidaUTI) wrote:
>
>> O que você poderia tentar é construir diferentes SELECTs com
>>> diferentes RETURNs mas, neste caso, creio que você teria problemas nas
>>> chamadas da função (quando você retorna um RECORD você precisa
>>> especificar na chamada a lista de campos, com respectivos tipos, que
>>> está(ão) sendo retornado(s)).
>>>
>>
>>
>> De acordo com a documentação, RECORD é um tipo de estrutura desconhecido
>> (apenas endereçado).
>> Isso para mim resolveria se a um determinado RECORD fosse possível
>> adicionar outros RECORDS.
>>
>> Numa solução de junção, todas as tabelas participam do relacionamento,
>> mesmo quando não dizem
>> respeito ao contexto. Assim sendo, o retorno da tabela ligada será nulo
>> em alguns casos, mas o
>> trabalho do BD vai existir para que se determine a nulidade.
>>
>> Enfim, foi apresentada uma solução com matrizes que resolve o problema.
>> Muito obrigado pela resposta,
>>
>>
> Carlos,
>
> Estou chegando um pouco tarde a essa discussão, mas resumindo o que vc
> precisa seria uma função com um retorno *variável*, ou seja, com diferentes
> tipos de dados e valores??
>
> Att,
>
> --
>    Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Bom dia Fabrizio,
pelo que entendi, a função array_to_string resolveu.
ele precisava juntar num unico campo varias informações que estavam em
campos diferentes e varias linhas no banco de dados.

exemplo:
table notafiscal (nrdocfiscal, dspessoa, vlvalor
333   pessoa X     90,00

detnotafiscal(cddetnotafiscal, nrdocfiscal, dsproduto)
1   333   coca-cola    30,00
2   333   cerveja        30,00
3   333   agua min.    30,00


ele queria o seguinte num select juntar todos os itens por exemplo:

select dspessoa, nrdocfiscal, vltotal
(SELECT array_to_string(
  array(Select distinct (dsproduto) From docfiscalitem  WHERE
cddocfiscal=11), ';'))
  from docfiscal where cddocfiscal=11


"CONSUMIDOR"; 333; 90,00; "coca-cola;cerveja;agua min."

-- 

Douglas Fabiano Spech
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a