Pular para o conteúdo

Exclusões no SQL quando NOT IN encontra um valor nulo

Execute três filtros de exclusão e mantenha a identificação ausente como pendência, sem declarar um total definitivo.

Uma lista de exclusões com identificação ausente pode fazer uma consulta devolver zero registros, embora existam documentos sem exclusão conhecida. Este laboratório executa três filtros no SQLite e separa o comportamento da consulta da pendência documental.

A base fictícia possui documentos A, B, C e D, com R$ 100, R$ 200, R$ 300 e R$ 400. Todas essas chaves estão preenchidas e são únicas. A lista de exclusões contém B e um segundo registro sem código, convertido explicitamente em NULL na importação.

Resultado vazio não significa ausência de candidatos

Filtro executado Documentos retornados Valor retornado Identificações pendentes
NOT IN sobre a lista completa Nenhum Zero 1
NOT EXISTS com igualdade de código A, C e D 800 1
NOT IN sobre códigos preenchidos A, C e D 800 1

Para B, a comparação de pertencimento encontra correspondência, e a negação é falsa. Para A, C e D, não há correspondência conhecida, mas existe NULL na lista. O resultado do NOT IN é então desconhecido, não verdadeiro. O filtro WHERE não mantém essas linhas.

NOT EXISTS verifica se há linha que satisfaça a igualdade com cada código preenchido. Por isso devolve A, C e D. A alternativa que filtra os códigos nulos antes do NOT IN chega aos mesmos candidatos nesta base.

A consulta corrigida ainda tem uma pendência

Os R$ 800 são candidatos provisórios sem exclusão conhecida. Não são um total definitivo de documentos elegíveis. O registro sem código pode alterar essa conclusão quando sua identidade for resolvida. Excluir esse registro do filtro técnico não autoriza apagar sua existência do relatório.

A conciliação preserva R$ 200 de exclusão identificada e R$ 800 provisórios, somando os R$ 1.000 de origem. O programa não substitui o identificador ausente por um código arbitrário e não calcula dívida exigível.

O pacote traz documentos, exclusões, consultas e saídas esperadas. O teste confere também a diferença entre resultado falso e desconhecido. A documentação de expressões do SQLite, seções IN e EXISTS descreve essa semântica. Na assistência técnica contábil, o controle de pendências deve acompanhar a consulta, não desaparecer quando o total volta a parecer plausível.

Falar pelo WhatsApp