Función NULL SQL

Funciones SQL ISNULL(), NVL(), IFNULL() y COALESCE()

Vea la tabla "Products" a continuación:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computadora 699 25 15
2 impresora 365 36  
3 teléfono 280 159 57

Si "UnitsOnOrder" es opcional y puede contener valores NULL.

Usamos la siguiente sentencia SELECT:

SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products

En el ejemplo anterior, si el valor 'UnitsOnOrder' es NULL, el resultado es NULL.

La función ISNULL() de Microsoft se utiliza para especificar cómo manejar los valores NULL.

Las funciones NVL(), IFNULL() y COALESCE() también pueden lograr el mismo resultado.

Aquí, queremos que el valor NULL sea 0.

A continuación, si 'UnitsOnOrder' es NULL, no es beneficioso para el cálculo, por lo tanto, si el valor es NULL, ISNULL() devuelve 0.

SQL Server / MS Access

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products

Oracle

Oracle no tiene la función ISNULL(). Sin embargo, podemos usar la función NVL() para lograr el mismo resultado:

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products

MySQL

MySQL también tiene una función similar a ISNULL(). Sin embargo, su funcionamiento es ligeramente diferente al de la función ISNULL() de Microsoft.

En MySQL, podemos usar la función IFNULL() de la siguiente manera:

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products

O podemos usar la función COALESCE() de la siguiente manera:

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products