SQL Practice Logo

SQLPractice Online

NULL-Safe Filtering: Mistakes

Module: Advanced Filtering

SELECT * FROM customers WHERE email = NULL;

SELECT * FROM customers WHERE email IS NULL;

NULL comparisons with = return NULL (not true). Use IS NULL to test for NULL values.

Always use IS NULL, never = NULL

High

= NULL always returns NULL, never true

SELECT * FROM products WHERE category_id NOT IN (SELECT id FROM archived WHERE id IS NULL);

SELECT * FROM products WHERE category_id NOT IN (SELECT id FROM archived WHERE id IS NOT NULL);

If subquery contains NULL, NOT IN returns no rows. Filter NULL or use NOT EXISTS.

Filter NULL from NOT IN subqueries

High

NOT IN with NULL returns no rows