Summary -
In this topic, we described about the IF NULL Function with detailed example.
IF NULL function is used to specify a value other than NULL value in result set. IF NULL works on MY SQL database only. IF NULL consists of two expressions, if first expression contains NULL values it returns second expression. If it does not contain NULL values, it returns first expression itself. IF NULL returns numeric or string value based on the scenario.
Syntax -
IF NULL (expression1, expressio2|value) FROM table;
- expression1 – It represents the name of the expression or column name on which we want to test NULL values.
- expression2 – It represents the name of the expression or column name which we want to insert values on nullable column.
- Value – It represents the value that we need to specify on required column which have the NULL values.
Example –
Let us consider below table(s) as an example table(s) to frame the SQL query for getting the desired results.
employee_details -
emp_id | emp_name | designation | manager_id | date_of_hire | salary | dept_id |
---|---|---|---|---|---|---|
001 | Employee1 | Director | 2019-07-11 | 45000.00 | 1000 | |
002 | Employee2 | Director | 2019-07-11 | 40000.00 | 2000 | |
003 | Employee3 | Manager | Employee1 | 2019-07-11 | 27000.00 | 1000 |
004 | Employee4 | Manager | Employee2 | 2019-10-08 | 25000.00 | 2000 |
005 | Employee5 | Analyst | Employee3 | 2019-07-11 | 20000.00 | 1000 |
006 | Employee6 | Analyst | Employee3 | 2019-10-08 | 18000.00 | 1000 |
007 | Employee7 | Clerk | Employee3 | 2019-07-11 | 15000.00 | 1000 |
008 | Employee8 | Salesman | Employee4 | 2019-09-09 | 14000.00 | 2000 |
009 | Employee9 | Salesman | Employee4 | 2019-10-08 | 13000.00 | 2000 |
Scenario – Replacing existing NULL values on table by using IF NULL.
Requirement – Replacing NULL values on existing employee_details table by using IF NULL. The query was as follows –
SELECT emp_id,emp_name,designation,IFNULL(manager_id, 'Employee0')
manager_id FROM employee_details;
By executing above query, we can get specified value on manager_id in employee_details table because manager_id consists NULL values. The output was as follows –
emp_id | emp_name | designation | manager_id |
---|---|---|---|
001 | Employee1 | Director | Employee0 |
002 | Employee2 | Director | Employee0 |
003 | Employee3 | Manager | Employee1 |
004 | Employee4 | Manager | Employee2 |
005 | Employee5 | Analyst | Employee3 |
006 | Employee6 | Analyst | Employee3 |
007 | Employee7 | Clerk | Employee3 |
008 | Employee8 | Salesman | Employee4 |
009 | Employee9 | Salesman | Employee4 |
Scenario – If we trying to replace NOT NULL column with a specified value by using IFNULL.
Requirement – If we trying to replace NOT NULL column emp_name on employee_details table by using IFNULL.
SELECT emp_id, IFNULL(emp_name, 'Employee1')emp_name
FROM employee_details;
By executing above query, we can get existing emp_name column values on employee_details because it won't consists NULL values. The output was as follows –
emp_id | emp_name |
---|---|
001 | Employee1 |
002 | Employee2 |
003 | Employee3 |
004 | Employee4 |
005 | Employee5 |
006 | Employee6 |
007 | Employee7 |
008 | Employee8 |
009 | Employee9 |
Scenario – If we trying to combine multiple columns which have NULL values getting without NULL values in result set on existing table by using IFNULL function.
Requirement – If we trying to add emp_id, emp_name, manager_id, designation columns on employee_details table without getting NULL values by using IFNULL function. The query was as follows –
SELECT emp_name + IFNULL(manager_id, ' ') + designation
'NAME WITH DESIGNATION' FROM employee_details;
By executing above query, we can get output without NULL values in result set from employee_details table. The output was as follows –
NAME WITH DESIGNATION |
---|
Employee1 Director |
Employee2 Director |
Employee3Employee1Manager |
Employee4Employee2Manager |
Employee5Employee3Analyst |
Employee6Employee3Analyst |
Employee7Employee3Clerk |
Employee8Employee4Salesman |
Employee9Employee4Salesman |
Scenario – Replacing NULL values in the existing table with another specified column value in result set by using IFNULL.
Requirement – Replacing NULL values in employee_details with designation value in result set by using IFNULL. The query was as follows –
SELECT emp_id,emp_name,IFNULL(manager_id,designation )manager_id
FROM employee_details;
By executing above query we can replace NULL values on manager_id column in existing employee_details table with designation column values. The output was as follows -
emp_id | emp_name | manager_id |
---|---|---|
001 | Employee1 | Director |
002 | Employee2 | Director |
003 | Employee3 | Employee1 |
004 | Employee4 | Employee2 |
005 | Employee5 | Employee3 |
006 | Employee6 | Employee3 |
007 | Employee7 | Employee3 |
008 | Employee8 | Employee4 |
009 | Employee9 | Employee4 |