IS NULL and IS NOT NULL test for missing values explicitly.

Program

Play the script to choose whether the query returns missing or present due dates.

is_null_filter.sql
CREATE TABLE tickets (id INTEGER, title TEXT, due_on TEXT);
INSERT INTO tickets VALUES (1, 'docs', NULL), (2, 'release', '2026-03-10'), (3, 'cleanup', NULL);
WITH params(want_missing) AS (VALUES ()) SELECT id, title, due_on FROM tickets WHERE ((SELECT want_missing FROM params) = 1 AND due_on IS NULL) OR ((SELECT want_missing FROM params) = 0 AND due_on IS NOT NULL) ORDER BY id;
CREATE TABLE tickets (id INTEGER, title TEXT, due_on TEXT);
INSERT INTO tickets VALUES (1, 'docs', NULL), (2, 'release', '2026-03-10'), (3, 'cleanup', NULL);
WITH params(want_missing) AS (VALUES ()) SELECT id, title, due_on FROM tickets WHERE ((SELECT want_missing FROM params) = 1 AND due_on IS NULL) OR ((SELECT want_missing FROM params) = 0 AND due_on IS NOT NULL) ORDER BY id;
IS NULL `due_on IS NULL` finds missing due dates.
IS NOT NULL `due_on IS NOT NULL` finds present due dates.
WHERE A `WHERE` filter keeps only rows where the condition is true.