Fórum Filtrar campo diferente de nulo em SQL #39777
30/10/2003
0
select * from tabela where campo<>´U´
Este campo, em sua grande maioria, possui registros nulos, apenas alguns registros possuem o caractere ´U´, mas nada é retornado na consulta.
Posso facilmente resolver isto filtrando os registros como nulos:
select * from tabela where campo is null
Mas, gostaria de entender porque isto acontece para que não cometa erros no código de alguma aplicação.
Utilizo o Firebird 1.5.
Se alguém puder me explicar, obrigado.
Alexandre.
Alexandre7
Curtir tópico
+ 0Posts
30/10/2003
Marcos Fernando
para ele encontrar não deixe a campo nulo, acresente um ´A´ ai sim,,pois o campo não será mais nulos,,,,,,sua consulta está certa como is null
Gostei + 0
30/10/2003
Alexandre7
Mas, uma vez que null é diferente de ´U´, a consulta não deveria exibir os registros com o campo nulo mesmo assim?
Isso irá ocorrer em qualquer tipo de campo (data, valor, texto), tanto no Firebird como no Interbase? Será que esta regra é comum para outros bancos de dados?
Questiono apenas para aprender mais.
Valeu.
Gostei + 0
01/11/2003
Afarias
|os registros com o campo nulo mesmo assim?
NULL não é diferente de ´U´ e nem é igual a ´U´ -- NULL não é valor, é apenas um estado como ´desconhecido´
|Isso irá ocorrer em qualquer tipo de campo (data, valor, texto), tanto no
|Firebird como no Interbase? Será que esta regra é comum para outros
|bancos de dados?
Todos os bancos de dados (segundo as normas SQL ANSI 92)
Vc pode ter seu SQL na forma::
select * from tabela where campo is NULL or campo<>´U´
T+
Gostei + 0
03/11/2003
Alexandre7
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)