Intervalo entre linhas de um select

Como posso encontrar o intervalo entre o resultado de um Select, exemplo:
em um Select codigo from cliente
1
2
3
5
6
8
neste resultado faltam o 4 e 7, existe uma forma de pegar só os faltantes sem ter q pegar o resultado e processar linha a linha ou tem como parar depois q identificar o primeiro faltante.
Se a tabela tiver 10 ou 100 registro blz, processo 1 a 1, mas e se tiver 1.000 ou 100.000 registros isso pode demorar só para procurar os intervalos.
Nao sei se deu para entender !

Talvez algo como

SELECT x.ID from x WHERE x.id NOT IN
(SELECT id FROM x)

Ah, sim. Só vai funcionar para os IDs não listados, mas que estejam cadastrados.
Se você deletou fisicamente alguma linha, o ID correspondente não existe e não há como lê-lo.

1 curtida