Здравствуйте, it.sting, Вы писали:
IS>Я не очень хорошо знаю sql. IS>Умные люди говорят, что можно сделать это без временных таблиц и UPDATE. IS>Подскажите как?
Оконные функции.
Вот решение на PostgreSQL:
SELECT lv + 1 AS left, v - 1 AS right
FROM (
SELECT lag( v ) OVER ( ORDER BY v ) AS lv, v
FROM (
SELECT unnest( ARRAY[ 1, 2, 3, 5, 9 ] ) v
) _1
) _2
WHERE lv != v - 1
На MSSQL всё должно быть аналогично (кроме синтаксиса массивов)