SQL: Función ISNULL

Avatar del autor
Publicado el • Actualizado el • 3 minutos y 15 segundos de lectura
Ver mi bloc de notas

Mis Artículos Guardados

Tratar con valores NULL

Dado que a menudo habrá situaciones en las que nos encontremos con un valor vacío o NULO en una tabla, SQL proporciona la instrucción ISNULL . Esta herramienta nos permite mostrar algo más o realizar otra tarea cuando alcanzamos el valor NULO.

NOTA: La función ISNULL se utiliza en SQL Server para reemplazar un valor NULL con otro valor. La misma función en MySQL devuelve un 0 si el valor no es nulo, o un 1 si lo es. Se requiere procesamiento adicional. Por lo tanto, mantendremos nuestro enfoque en SQL Server y cómo usar su poder para reemplazar un valor NULL con uno diferente.

ISNULL (expresión, valor_alternativo)

La expresión es el valor o campo que estamos viendo; la alternate_value es el valor vamos a utilizar si el campo o valor es nulo.

Ejemplos

Un uso de ISNULL es para sentencias SQL que realizan cálculos matemáticos: no es posible hacer multiplicaciones en un valor de campo si es NULL. No es cero, sino vacío. Por lo tanto, usar la instrucción ISNULL nos permitirá establecer cualquier campo nulo en 0. Esto funciona para multiplicaciones, sumas o promedios.

Costo total de un producto (multiplicación)

Aquí hay un ejemplo donde calculamos el costo de los artículos en el inventario. Si no tenemos el artículo a mano, el valor es NULL; para que la consulta se ejecute correctamente, reemplazaremos ese NULL con un cero:

SELECCIONE itemName, costo * ISNULL (qty, 0) 
FROM tblInventory;

Adición

Digamos que tenemos una tabla que almacena datos de nómina por trimestre y queremos sumar algunas cantidades para los códigos de pago. Es posible que algunos códigos de pago nunca se utilicen en un trimestre determinado, por lo que debemos asegurarnos de tener en cuenta los valores NULL:

  Cómo limitar los resultados de una consulta SQL SELECT

SELECCIONE q1.payCode, q2.payCode 
  ISNULL (q1.waeAmount, 0) +
  ISNULL (q2.wageAMount, 0)
FROM tblQuarterlyWage;

Los totales se suman, reemplazando cualquier valor NULL con 0. Recuerde, si hubiéramos intentado agregar el valor NULL, el sistema habría devuelto un error; por lo tanto, el ISNULL nos permite completar la función matemática completando un cero en lugar del valor NULL desagradable.

Promedio

El siguiente ejemplo utiliza la función AVG en SQL y calcula el promedio de calificaciones para una tabla de álbumes de música. Si alguna calificación es NULL, la reemplazamos con 50, lo que indicaría el valor mediano (o puede indicar no calificado).

SELECCIONE AVG (ISNULL (rating, 50)) 
FROM tblAlbum;

Hasta ahora hemos cubierto la parte de consulta de la función ISNULL. Sabemos que tenemos valores NULL en la base de datos y podemos reemplazarlos en nuestras consultas. Pero, ¿y si queremos arreglarlos de una vez por todas? Volvamos a la tabla de álbumes de música: todos los datos ingresados ​​hasta ahora todavía tienen valores NULL para la calificación. Si queremos ejecutar consultas más avanzadas o escribir informes más tarde, lidiar con los valores NULL puede resultar frustrante. Podemos usar la función ISNULL en una declaración de actualización para cambiarlos a 50.

ACTUALIZAR tblAlbum 
  SET rating = 50
  WHERE ISNULL (rating);

Aunque las declaraciones SQL son un poco diferentes, sigue haciendo lo que ISNULL pretende: reemplazar el valor NULL en el campo de calificación a 50. Debido a que es una actualización, el valor alternativo se mueve a la declaración SET .

Resumen de la lección

La declaración SQL ISNULL nos permite reemplazar un valor NULL con un valor viable. Su poder se aprovecha en SQL Server. Si un campo / columna contiene NULL, especialmente para valores numéricos, podemos reemplazarlos con otro valor. Esto permite que nuestras consultas devuelvan resultados y no errores cuando encontramos estos valores. ISNULL funciona muy bien cuando estamos haciendo operaciones matemáticas en la consulta, por ejemplo, suma, multiplicación, promedios, etc.

Continúa con:

  1. Negocios

    SQL: UNION vs. JOIN

    UNIÓN vs UNIÓN Si bien puede que no siempre lo parezca, hay ocasiones en las...

  2. Negocios

    Diseño para bases de datos y SQL

    Bases de datos y SQL Una base de datos es una colección de datos organizados...

  3. Negocios

    Unión SQL: definición y ejemplos

    Unión SQL Una unión SQL es una operación que combina registros de dos o más...

  4. Negocios

    Aplicación práctica para la introducción a SQL: INSERT, UPDATE & SET

    Descripción general de la lección y conocimientos necesarios Para completar esta lección práctica, debería poder...

Selecciona un tema para seguir aprendiendo