Es nulo > 0 (entero) [duplicado]
Frecuentes
Visto 87 equipos
5 Respuestas
2
As NULL means "not known", NULL is not greater than 0. It's not smaller either. It's not known. Hence NULL > 0
results in NULL, rather than in TRUE or FALSE.
contestado el 28 de mayo de 14 a las 14:05
1
NULL is not greater than zero. NULL is not equal to zero. NULL is not less than zero.
Any given integer you might choose would meet exactly one of these three conditions. But not NULL.
NULL isn't an integer. It's a marker indicating that a value is not present. This could mean that a value exists, but is unknown. It could also indicate that no value exists in this context.
You can use the ISNULL function to find out whether a NULL is present instead of a value. But if you compare a value with zero, and there is a NULL in place of the value, you won't get either TRUE or FALSE as a result.
If you are confused, you're in good company.
contestado el 28 de mayo de 14 a las 13:05
0
¿Qué tal comprobar NULL
y luego regresando 0
if true otherwise return the value of ONECOLUMN
:
SELECT *
FROM SOMETABLE
WHERE (
SELECT CASE WHEN ISNULL(ONECOLUMN) THEN 0 ELSE ONECOLUMN END
FROM ANOTHERTABLE
WHERE ID = 42
) > 0
contestado el 28 de mayo de 14 a las 13:05
0
Null is unknown and it cannot be compared to any value. It cannot be greater or lesser.
contestado el 28 de mayo de 14 a las 13:05
0
SELECT *
FROM SOMETABLE
WHERE (
IsNull((SELECT ONECOLUMN
FROM ANOTHERTABLE
WHERE ID = 42), IntValue) > 0
)
If you need to accept the Null
so IntValue
puede ser 1
de otra manera -1
está bien
contestado el 28 de mayo de 14 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas sql null or haz tu propia pregunta.
This is something you can try on your own. - gunr2171