Función NULL SQL
- Página anterior Nulls de SQL
- Página siguiente Tipos de datos 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
- Página anterior Nulls de SQL
- Página siguiente Tipos de datos SQL