SQL Interview Questions
SQL
BackendWeb DevelopmentData ScienceQuestion 40
How do you handle NULL values in SQL?
Answer:
Handling NULL
values in SQL is crucial for ensuring accurate data retrieval and manipulation. NULL
represents the absence of a value or unknown value in a database. Here are several techniques and functions to handle NULL
values effectively in SQL:
1. Using IS NULL and IS NOT NULL
To check for NULL
values, use the IS NULL
or IS NOT NULL
operators.
Example
-
Select rows with NULL values:
SELECT * FROM employees WHERE middle_name IS NULL;
-
Select rows without NULL values:
SELECT * FROM employees WHERE middle_name IS NOT NULL;
2. Using COALESCE Function
The COALESCE
function returns the first non-NULL value from a list of expressions. Itβs useful for providing default values for NULL
.
Syntax
COALESCE(expression1, expression2, ..., expressionN)
Example
-
Provide a default value for NULL:
SELECT first_name, COALESCE(middle_name, 'N/A') AS middle_name, last_name FROM employees;
3. Using IFNULL or ISNULL Functions (Database-specific)
Some databases have functions like IFNULL
or ISNULL
to handle NULL
values.
Example for MySQL (IFNULL)
-
Replace NULL with a default value:
SELECT first_name, IFNULL(middle_name, 'N/A') AS middle_name, last_name FROM employees;
Example for SQL Server (ISNULL)
-
Replace NULL with a default value:
SELECT first_name, ISNULL(middle_name, 'N/A') AS middle_name, last_name FROM employees;
4. Using NULLIF Function
The NULLIF
function returns NULL
if two expressions are equal; otherwise, it returns the first expression. Itβs useful for avoiding division by zero and other operations that might result in an error.
Syntax
NULLIF(expression1, expression2)
Example
-
Avoid division by zero:
SELECT total_sales / NULLIF(number_of_sales, 0) AS average_sale FROM sales_data;
5. Using CASE Statement
The CASE
statement allows for more complex logic to handle NULL
values.
Example
-
Custom handling of NULL values:
SELECT first_name, CASE WHEN middle_name IS NULL THEN 'N/A' ELSE middle_name END AS middle_name, last_name FROM employees;
6. Aggregating with NULL Values
When using aggregate functions, NULL
values are generally ignored. However, you can use functions like COUNT
to count NULL
values.
Example
-
Count all rows including NULLs:
SELECT COUNT(*) AS total_rows FROM employees;
-
Count only non-NULL values:
SELECT COUNT(middle_name) AS middle_name_count FROM employees;
-
Count NULL values:
SELECT COUNT(*) - COUNT(middle_name) AS null_middle_name_count FROM employees;
7. Ordering with NULL Values
By default, NULL
values are sorted last in ascending order and first in descending order. You can change this behavior using NULLS FIRST
or NULLS LAST
.
Example
-
Order by middle_name with NULLs last:
SELECT first_name, middle_name, last_name FROM employees ORDER BY middle_name ASC NULLS LAST;
Conclusion
Handling NULL
values in SQL is essential for ensuring data integrity and accuracy in your queries. Techniques like using IS NULL
, COALESCE
, IFNULL
, ISNULL
, NULLIF
, and CASE
statements, as well as understanding their behavior in aggregation and ordering, allow you to manage NULL
values effectively. By applying these methods, you can ensure that your SQL queries handle NULL
values in a way that meets your specific requirements and avoids potential pitfalls.