El uso de isnull, ifnull, nullif es el siguiente:
Uso de isnull (expr):Si expr es nulo, entonces isnull() devuelve un valor de 1, de lo contrario devuelve 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Usar = para comparaciones de valores nulos suele ser incorrecto.
La función isnull() comparte algunas de las mismas características que el operador de comparación es nulo. Mira la nota sobre es nula.
Uso de IFNULL (expr1,expr2):
Si expr1 no es NULL, el valor de retorno de IFNULL() es expr1; De lo contrario, devuelve un valor de expr2. IFNULL() devuelve un número o una cadena, dependiendo del contexto en el que se use.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'sí');
-> 'sí'
El valor de resultado por defecto para IFNULL(expr1,expr2) es la más "genérica" de las dos expresiones, en el orden de STRING, REAL o ENTERO。 Supongamos una situación en la que una tabla basada en expresiones, o MySQL, debe almacenar el valor de retorno de IFNULL() en una tabla temporal en la memoria interna: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; En este ejemplo, la columna de prueba es de tipo CHAR(4).
Uso de NULLIF(expr1,expr2): Si expr1 = expr2 es verdadero, entonces el valor de retorno es NULL, de lo contrario el valor de retorno es expr1. Esto es lo mismo que CASO CUANDO expr1 = expr2 Entonces NULL ELSE expr1 END es igual. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Si los parámetros no son iguales, entonces MySQL obtiene el valor expr1 dos veces.
|