Em 10 de junho de 2015 17:27, Matheus Saraiva
<[email protected]> escreveu:
> Postgresql tem alguma "saída pronta", de gerar um array de elementos que
> não estão contidos. Exemplo:
>
> array_algumacoisa(array[2,5,8,4,1], array[5,1,2])
>
> retorno: {4,8}

Uma função pra isso no postgres não, mas uma solução rápida que eu
pensei aqui seria:

select
     *,
     (select array(select unnest(a1) except select unnest(a2))) nao_comuns,
     (select array(select unnest(a1) intersect select unnest(a2))) comuns,
     (select array(select unnest(a1) union select unnest(a2))) todos_distintos,
     array_cat(a1, a2) todos
from (values(array[2,5,8,4,1])) tb1(a1)  -- tb1 seria uma de suas tabelas
join (values(array[5,1,2])) tb2 (a2) -- tb2 seria outra.... no join
apenas para simular uma consulta qq
  on true;

Você pode usar isso para criar uma função e usar em suas aplicações.

> Olhei na DOC e não vi nada a respeito, mas como essa DOC sempre me prega
> peças,........

Pra mim a doc do postgres é muito boa! Tem seus pontos de melhoria,
claro, mas frete a outras que tem por aí... dá de olé!!!


-- 
Marcone Peres
https://br.linkedin.com/in/marconeperes
(61) 8146-0028 (VIVO)
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a