SQL NULL Function

SQL ISNULL(), NVL(), IFNULL(), and COALESCE() functions

Please see the following "Products" table:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36  
3 telephone 280 159 57

If "UnitsOnOrder" is optional and can contain NULL values.

We use the following SELECT statement:

SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products

In the above examples, if the 'UnitsOnOrder' value is NULL, the result is NULL.

Microsoft's ISNULL() function is used to specify how to handle NULL values.

The NVL(), IFNULL(), and COALESCE() functions can also achieve the same result.

Here, we hope the NULL value is 0.

Next, if 'UnitsOnOrder' is NULL, it is not conducive to calculation, so if the value is NULL, ISNULL() returns 0.

SQL Server / MS Access

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products

Oracle

Oracle does not have an ISNULL() function. However, we can use the NVL() function to achieve the same result:

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products

MySQL

MySQL also has a function similar to ISNULL(). However, it works a bit differently from Microsoft's ISNULL() function.

In MySQL, we can use the IFNULL() function, like this:

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products

Or we can use the COALESCE() function, like this:

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products