Не зная контекста, я не могу комментировать, стоит ли это того или нет (я бы предположил, пока не доказано обратное), но все возможно !! Сначала я пойду с псевдокодом одного метода ...
Создать хранимую процедуру, которая принимает идентификатор начальной строки, который:
Создать временную таблицу идентификаторов.
Вставить запрос выбора в эту временную таблицу из основной таблицы, соответствующей идентификатору строки.
Число только что выполненных вставок равно 0:
Вставить запрос выбора, соединяющий временную таблицу с основной таблицей
где абсолютное значение вычитания идентификатора равно
к 1, и где идентификатор еще не находится во временной таблице
Выберите результаты из временной таблицы, присоединенной к основной таблице по идентификатору.
Учитывая пример 11, первая вставка вставит # 11, цикл начнется, а вторая вставит # 10 и # 12, третья вставка только добавит # 13, а четвертая вставка вставит 0 записей, заканчивая цикл Тогда вы получите выбор из главной таблицы ID 10, 11, 12, 13.
Если бы процедура была запущена с несуществующим номером, таким как # 14, цикл никогда не запустился бы, и вы бы получили пустой набор результатов.
Как вы думаете, сможете ли вы выполнить это, или мне следует написать?