Osvaldo Kussama wrote:
>
>
>
> Evandro Ricardo Silvestre wrote:
>>
>> Saudações a todos,
>>
>> Preciso fazer uma procedure que irá varrer uma determinada tabela e
>> procurar pelo primeiro número vago.
>> Por exemplo: tenho 1,2,3,4,6,7,8. A rotina deverá retornar o 5.
>> Estou pensando em fazer um laço do primeiro ao ultimo, mas isso será
>> muito custoso a longo prazo (hoje a tabela tem 5000 registro).
>>
>> Existe alguma rotina no banco que faça isso? Ou alguém tem uma idéia
>> mais inteligente que a minha?
>>
>>
>
> Tente:
> SELECT seu_num FROM sua_tabela
> EXCEPT
> SELECT * FROM generate_series(1,(SELECT max(seu_num) FROM sua_tabela));
>
> Osvaldo
> PS. Nao testado.
>
>
Ops!
SELECT * FROM generate_series(1,(SELECT max(seu_num) FROM sua_tabela))
EXCEPT
SELECT seu_num FROM sua_tabela;
Isto vai listar todos os numeros faltantes.
Para pegar so' o primeiro:
SELECT min(seu_num)
FROM (SELECT * FROM generate_series(1,(SELECT max(seu_num) FROM
sua_tabela))
EXCEPT
SELECT seu_num FROM sua_tabela) AS foo;
Osvaldo
--
View this message in context:
http://www.nabble.com/Pr%C3%B3ximo-n%C3%BAmero-Vago-tp15163409p15164613.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral