SQL ISNULL (), NVL (), IFNULL () and COALESCE () function
SQL ISNULL (), NVL (), IFNULL () and COALESCE () function
Look at the following "Products" table:
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | 16 | 15 |
2 | Mascarpone | 32.56 | 23 | |
3 | Gorgonzola | 15.67 | 9 | 20 |
If "UnitsOnOrder" is optional, and may contain NULL values.
We use the following SELECT statement:
FROM Products
In the example above, if there is "UnitsOnOrder" value is NULL, then the result is NULL.
Microsoft's ISNULL () function is used to specify how to handle NULL values.
NVL (), IFNULL () and COALESCE () function can also achieve the same results.
Here, we hope NULL value is 0.
Now, if "UnitsOnOrder" is NULL, it will not affect the calculation, because if the value is NULL, ISNULL () returns 0:
SQL Server / MS Access
FROM Products
Oracle
Oracle did not ISNULL () function. However, we can use the NVL () function to achieve the same result:
FROM Products
MySQL
MySQL also has similar ISNULL () function. But it works with Microsoft's ISNULL () function is a bit different.
In MySQL, we can use IFNULL () function as follows:
FROM Products
Or we can use the COALESCE () function as follows:
FROM Products