Firebird Documentation Index → Guía de NULL en Firebird → Comprobando si algo es NULL |
Para resolver los estragos que NULL
puede
causar, a menudo tienes que saber si algo es NULL
antes de usarlo en una expresión. Para algunos, lo obvio sería
esto:
if (A =
NULL
) then...
y de hecho, hay sistemas de control de bases de datos que soportan
esta sintaxis para determinarlo. Pero el SQL estándar no lo soporta y
Firebird tampoco. En versiones anteriores a la 2.0, la expresión completa
es ilegal. A partir de la 2.0 está permitida, pero la comparación siempre
devuelve NULL
, independientemente del valor de A o su
estado. Es, por tanto, inútil; lo que necesitamos es un resultado limpio
true
o false
.
El modo correcto para testear NULL
es:
...is null
/...is not null
Estas comprobaciones devolverán siempre true
o
false
sin errores. Ejemplos:
if (MiCampo is null) then...
select * from Alumnos where Telefono is not null
select * from Alumnos where not (Telefono is null) /* hace lo mismo que el ejemplo anterior */
update Numeros set Total = A + B + C where A + B + C is not null
Se puede decir que mientras “=
” (cuando se usa como un
operador de igualdad) puede comparar sólo valores, “is
” compara
estados.
Firebird Documentation Index → Guía de NULL en Firebird → Comprobando si algo es NULL |