Исправление mashina, 18.12.12 01:39 (текущая версия) :
Вот как примерно можно решить второй пункт через оконные ф-ии (линк на доку к PG 1 и 2)
SELECT A, B FROM( SELECT value as A, lag(value, 1) as B OVER(ORDER BY ID) FROM table) WHERE A <= border AND B > border
Исходная версия mashina, 18.12.12 01:39:
SELECT A, B FROM( SELECT value as A, lag(value, 1) as B OVER(ORDER BY ID) FROM table) WHERE A <= border AND B > BORDER