WITH t AS ( SELECT 1 seq FROM dual UNION ALL SELECT 2 FROM dual --UNION ALL SELECT 3 FROM dual UNION ALL SELECT 4 FROM dual UNION ALL SELECT 5 FROM dual ) SELECT NVL(MIN(seq), 0) + 1 new_seq FROM (SELECT seq , LEAD(seq) OVER(ORDER BY seq) next_seq FROM t ) WHERE next_seq != seq + 1 OR next_seq IS NULL ;