Cuándo utilizar valores nulos o predeterminados
En algunas situaciones la utilización de un valor nulo es más fácil y más adecuado que la utilización de un valor por omisión.
Suponga que desea averiguar cuál es el salario medio de todos los empleados de un departamento. La columna de salario no siempre necesita contener un valor significativo, por lo tanto puede elegir entre las opciones siguientes:
- Permitir valores nulos para la columna SALARY
- Utilizar un valor por omisión no nulo (como por ejemplo, 0)
Al permitir valores nulos, puede formular la consulta fácilmente y Db2 proporciona el promedio de todos los salarios conocidos o registrados. El cálculo no incluye las filas que contienen valores nulos. En el segundo caso, probablemente se obtendrá una respuesta engañosa a menos que se conozca el valor por omisión no nulo para los salarios desconocidos y se formule la consulta de acuerdo con esto.
La figura siguiente muestra dos casos de ejemplo. La tabla de la figura excluye los datos de salario para el empleado número 200440 debido a que la empresa acaba de contratar a este empleado y todavía no ha determinado su salario. El cálculo del salario medio para el departamento E21 varía, en función de si se utilizan valores no nulos o valores por omisión no nulos.
- En la parte izquierda de la figura se supone que se utilizan valores nulos. En este caso, el cálculo del salario medio para el departamento E21 solamente incluye tres empleados (000320, 000330 y 200340) para los cuales están disponibles datos sobre el salario.
- En la parte derecha de la figura se supone que se utiliza un valor por omisión no nulo distinto de cero (0). En este caso, el cálculo del salario medio para el departamento E21 incluye todos los cuatro empleados, aunque sólo existe información válida sobre el salario para tres empleados.
Como se puede observar, únicamente la utilización de un valor nulo tiene como resultado un salario medio preciso para el departamento E21.
Los valores nulos son diferentes en la mayoría de situaciones para que dos valores nulos no sean iguales entre sí.
Ejemplo
El ejemplo siguiente muestra cómo comparar dos columnas para ver si son iguales o si ambas columnas son nulas:
WHERE E1.DEPT IS NOT DISTINCT FROM E2.DEPT