Re: [MS SQL] Тестовая задача
От: Иль  
Дата: 24.05.16 04:16
Оценка: 2 (1)
Здравствуйте, 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 всё должно быть аналогично (кроме синтаксиса массивов)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.