Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 подскажите с запросом  [new]
Alexander_fx
Member

Откуда:
Сообщений: 660
привет
есть таблица с полем ID identity - increment 1
в таблице 50 мио строк
есть поле Col1 - long в котором должно выполняться условие что каждое следующее значение (по id) должно быть больше предыдущего но не известно насколько.
можно ли как то запросом проверить соблюдается ли такое уловие для всех строк данной талицы?
30 май 16, 20:53    [19238127]     Ответить | Цитировать Сообщить модератору
 Re: подскажите с запросом  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
DECLARE @t TABLE (
    id INT PRIMARY KEY IDENTITY,
    col1 INT
)

INSERT INTO @t (col1)
VALUES (1), (6), (6), (456), (234234), (23), (3245345), (12345636)

SELECT *,
    CASE
        WHEN col1 = LAG(col1) OVER (ORDER BY id) THEN '='
        WHEN col1 > LAG(col1) OVER (ORDER BY id) THEN '>'
        WHEN col1 < LAG(col1) OVER (ORDER BY id) THEN '<'
    END
FROM @t

Потом можете агрегацию сделать или как Вам удобнее. Вариант через LAG самый простой при условии что у Вас 2012+
30 май 16, 21:15    [19238223]     Ответить | Цитировать Сообщить модератору
 Re: подскажите с запросом  [new]
Alexander_fx
Member

Откуда:
Сообщений: 660
AlanDenton,

большое спасибо
30 май 16, 21:53    [19238352]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить