#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 19 of 29easy

How do you handle NULL values?

Working with NULL in SQL.

What You'll Learn

  • NULL behavior
  • Checking for NULL
  • NULL functions

NULL Behavior

NULL represents missing/unknown data. NULL is not equal to anything, including NULL.

query.sqlSQL
-- These return no rows!
SELECT * FROM users WHERE phone = NULL;    -- Wrong
SELECT * FROM users WHERE phone != NULL;   -- Wrong

-- Correct way
SELECT * FROM users WHERE phone IS NULL;
SELECT * FROM users WHERE phone IS NOT NULL;

NULL in Comparisons

query.sqlSQL
-- NULL in arithmetic = NULL
SELECT 100 + NULL;  -- NULL

-- NULL in string concatenation = NULL
SELECT 'Hello ' || NULL;  -- NULL (in most databases)

-- NULL in conditions
SELECT * FROM products WHERE price > 50;
-- Rows where price IS NULL are NOT included

COALESCE

Returns first non-NULL value.

query.sqlSQL
SELECT
  name,
  COALESCE(phone, mobile, email, 'No contact') AS contact
FROM users;

-- Default value
SELECT name, COALESCE(nickname, name) AS display_name
FROM users;

NULLIF

Returns NULL if two values are equal.

query.sqlSQL
-- Avoid division by zero
SELECT total / NULLIF(count, 0) AS average
FROM stats;

-- Convert empty string to NULL
SELECT NULLIF(name, '') AS name FROM users;

IFNULL / ISNULL / NVL

Database-specific NULL replacement.

query.sqlSQL
-- MySQL
SELECT IFNULL(phone, 'N/A') FROM users;

-- SQL Server
SELECT ISNULL(phone, 'N/A') FROM users;

-- Oracle
SELECT NVL(phone, 'N/A') FROM users;

NULL-safe Comparison

query.sqlSQL
-- MySQL: <=> operator
SELECT * FROM t1, t2 WHERE t1.value <=> t2.value;

-- Standard SQL
SELECT * FROM t1, t2
WHERE t1.value = t2.value OR (t1.value IS NULL AND t2.value IS NULL);