In MariaDB, the ISNULL() function checks whether an expression is null or not. If the expression resolves to null, then ISNULL() returns 1, otherwise it returns 0.
Syntax
ISNULL(expr)
Example
Here’s a simple example to demonstrate:
SELECT ISNULL( null );
Result:
1
In this case, the value is null and so the output is 1.
Here it is with a non-null value:
SELECT ISNULL( 'Treehouse' );
Result:
0
This time the result is 0 (because the expression is not null).
Expressions
The function checks the result of any expression. So if we do the following:
SELECT ISNULL( 7 / 0 );
We get this:
1
So in this case, we didn’t specify null as the argument, but the result of the expression is null, and so ISNULL() returns 1.
Here it is again, alongside the actual output from the expression:
SELECT
7 / 0,
ISNULL( 7 / 0 );
Result:
7 / 0 ISNULL( 7 / 0 ) ----- --------------- NULL 1
In the first column we can see that the calculation itself resulted in a null value, and so the second column returned 1.
Database Example
Suppose we have a database table like this:
SELECT * FROM Employees;
Result:
empId name dept ----- ----- ----- 1 Jess Sales 2 Rohit NULL 3 Zohan Sales 4 Homer NULL
Here’s a query that uses the ISNULL() function against that table:
SELECT
empId,
name,
ISNULL( dept ) AS "Is dept NULL?"
FROM Employees;
Result:
empId name Is dept NULL? ----- ----- ------------- 1 Jess 0 2 Rohit 1 3 Zohan 0 4 Homer 1
In that case, we created a column that displays 1 for all employees that don’t have anything in their dept column.
We can use ISNULL() in a WHERE clause to return all employees that haven’t been assigned a department (i.e. their dept field is null). In this case, we can do the following:
SELECT * FROM Employees
WHERE ISNULL(dept) = 1;
Result:
empId name dept ----- ----- ---- 2 Rohit NULL 4 Homer NULL
That’s the same as doing the following:
SELECT * FROM Employees
WHERE dept IS NULL;
Result:
empId name dept ----- ----- ---- 2 Rohit NULL 4 Homer NULL