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:
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:
- Negocios
Cómo ordenar los resultados de una consulta SQL
Cláusula ORDER BY en SQL La instrucción SELECT obtiene filas de las tablas sin ningún...
- Negocios
Sintaxis básica de consultas SQL
Conceptos de consulta Aquí está, solo tres semanas en el trabajo y el jefe le...
- Negocios
¿Qué es un esquema en SQL? – Definición y Diseño
La necesidad de orden La información llega a una empresa desde todas las direcciones, y...
- Negocios
Restricción SQL DROP: Tutorial y descripción general
¿Qué es una restricción? Una declaración de lenguaje de consulta estructurado o SQL es un...
