Saltar al contenido

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

septiembre 23, 2021

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
COALESCE()
función, así:

SELECCIONE ProductName, UnitPrice * (UnitsInStock + COALESCE (UnitsOnOrder, 0))
DE Productos;

servidor SQL

El servidor SQL
ISNULL()
La función le permite devolver un valor alternativo cuando una expresión es NULL:

SELECCIONE ProductName, UnitPrice * (UnitsInStock + ISNULL (UnitsOnOrder, 0))
DE Productos;

Acceso MS

El MS Access
IsNull()
La función devuelve VERDADERO (-1) si la expresión es un valor nulo; de lo contrario, FALSO (0):

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;

close