Funciones SQL NULL
Funciones SQL IFNULL(), ISNULL(), COALESCE() y NVL()
Mira la siguiente tabla de "Productos":
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | 16 | 15 |
2 | Mascarpone | 32.56 | 23 | |
3 | Gorgonzola | 15.67 | 9 | 20 |
Suponga que la columna "UnitsOnOrder" es opcional y puede contener valores NULL.
Mire la siguiente instrucción SELECT:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;
En el ejemplo anterior, si cualquiera de los valores de "UnitsOnOrder" es NULL, el resultado será NULL.
Soluciones
mysql
La función MySQL IFNULL()
le permite devolver un valor alternativo si una expresión es NULL:
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;
o podemos usar la función, así:
COALESCE()
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
servidor SQL
La función de SQL Server
ISNULL()
le permite devolver un valor alternativo cuando una expresión es NULL:
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;
MS Access
La función de MS Access
IsNull()
devuelve VERDADERO (-1) si la expresión es un valor nulo, de lo contrario FALSO (0):
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;
Oráculo
La función de Oracle NVL()
logra el mismo resultado:
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;