← Back to all snippets
SQL

Identifying Missing IDs or Gaps in a Numeric Sequence

Discover missing numeric IDs or gaps within a sequential data series in your SQL table using a self-join and NULL check, crucial for data integrity checks.

SELECT
    t1.id + 1 AS missing_id
FROM
    your_table t1
LEFT JOIN
    your_table t2 ON t1.id + 1 = t2.id
WHERE
    t2.id IS NULL
    AND t1.id < (SELECT MAX(id) FROM your_table)
ORDER BY
    missing_id;
How it works: This query identifies gaps in a sequential numeric ID column. It works by performing a `LEFT JOIN` of the table with itself, attempting to match each `id` with `id + 1`. If `id + 1` does not exist in the table (i.e., `t2.id` is `NULL`), then that `id + 1` is a missing value. The `t1.id < (SELECT MAX(id) FROM your_table)` condition ensures we only look for gaps within the existing range of IDs.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs