Funcionou com a seguinte consulta:
select foo.codigo from (
select generate_series(1,3) as codigo)foo where foo.codigo not in (select
codigo from tabela)
and foo.codigo in (1,2,3)

O problema é que tenho que saber qual é o menor e maior numero para
informar a sequencia (1,3) ao generate_series.
Esta lista (1,2,3) é uma string que tenho em outra tabela.


Alessandro Lima



Em 30 de maio de 2012 13:36, Osvaldo Kussama
<[email protected]>escreveu:

> Em 30/05/12, Alessandro Lima<[email protected]> escreveu:
> > Bom dia a todos,
> >
> > Gostaria de uma ajuda para criar uma consulta que me retorne codigos que
> > não estejam mais em uma tabela.
> > Exemplo: tenho uma tabela de produto com dois produtos:
> > codigo    nome
> > 1            produto A
> > 2            produto B
> >
> > Tendo um lista (1,2,3) gostaria de saber quais os produtos que estão
> nesta
> > lista e não estejam cadastrados na tabela
> > ou seja, gostaria que o resultado fosse 3.
> >
> > Tipo: select codigo from (1,2,3) where codigo not in (select codigo from
> > produto)
> >
> > Alessandro Lima
> >
>
>
> Ou ainda a antiga diferença de conjuntos:
>
> SELECT * FROM generate_series(1,4)
> EXCEPT
> SELECT codigo FROM produto;
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a