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
SQL: UNION vs. JOIN
UNIÓN vs UNIÓN Si bien puede que no siempre lo parezca, hay ocasiones en las...
- 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...
- 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...
- 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...
