Поиск пропуска в числовой последовательности :: Cетевой уголок Majestio

Поиск пропуска в числовой последовательности


Пусть есть Таблица вида A:

Id: SERIAL
Name: VARCHAR (128)

Тогда запрос:

SELECT MIN(res."Id")+1
FROM (
  SELECT alias1."Id"
  FROM (
    SELECT alias3."Id" FROM public."A" AS alias3 UNION SELECT 0) AS alias1
  WHERE NOT EXISTS (
    SELECT alias2."Id"
    FROM public."A" AS alias2
    WHERE alias2."Id" = alias1."Id" + 1
  )
) AS res

Найдет минимальное значение Id > 0, которого нет в таблице.

Рейтинг: 0/5 - 0 голосов