Funciones SQL IFNULL (), ISNULL (), COALESCE () y NVL ()
Mire la siguiente tabla «Productos»:
P_Id | Nombre del producto | Precio unitario | Unidades en Stock | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | dieciséis | 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 declaración SELECT:
SELECCIONE ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
DE Productos;
En el ejemplo anterior, si alguno de los valores de «UnitsOnOrder» es NULL, el resultado será NULL.
Soluciones
MySQL
El MySQL IFNULL()
La función le permite devolver un valor alternativo si una expresión es NULL:
SELECCIONE ProductName, UnitPrice * (UnitsInStock + IFNULL (UnitsOnOrder, 0))
DE Productos;
o podemos usar el
función, así:
COALESCE()
SELECCIONE ProductName, UnitPrice * (UnitsInStock + COALESCE (UnitsOnOrder, 0))
DE Productos;
servidor SQL
El servidor SQL
La función le permite devolver un valor alternativo cuando una expresión es NULL:
ISNULL()
SELECCIONE ProductName, UnitPrice * (UnitsInStock + ISNULL (UnitsOnOrder, 0))
DE Productos;
Acceso MS
El MS Access
La función devuelve VERDADERO (-1) si la expresión es un valor nulo; de lo contrario, FALSO (0):
IsNull()
SELECCIONE ProductName, UnitPrice * (UnitsInStock + IIF (IsNull (UnitsOnOrder), 0, UnitsOnOrder))
DE Productos;
Oráculo
El oráculo NVL()
función logra el mismo resultado:
SELECCIONE ProductName, UnitPrice * (UnitsInStock + NVL (UnitsOnOrder, 0))
DE Productos;