Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 запрос  [new]
еоонгонгн
Guest
Есть таблица с полями ID, Value.
ID - identity поле.
В поле Value значения содержатся, в основном по нарастающей.
Примерно так:
ID Value
1 1
2 7
3 20
4 9
5 30
6 35
Как запросом без курсора найти все сбои нумерации в Value? Т.е. когда следующее в Value меньше предыдущего?
22 сен 15, 15:29    [18180956]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
еоонгонгн,

with cte as (
  select ID, Value, row_number() over (order by ID) as num
  from table
)
select *
from cte
inner join cte as cte1
on cte.num = cte1.num+1
where cte.Value < cte1.Value
22 сен 15, 15:42    [18181051]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
zero_air
Member

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

declare @t table(id int IDENTITY(1,1), Value int);

insert into @t (Value)
select 1 union all
select 7 union all
select 20 union all
select 9 union all
select 30 union all
select 35 

select * from @t t

;with cte as (
  select ID, Value, row_number() over (order by Value) as num
  from @t
)

select * from cte where id!=num
22 сен 15, 15:51    [18181087]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
zero_air, сбои в Value надо искать, а не в ID.
22 сен 15, 15:53    [18181105]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
_human
Member

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

LEAD
22 сен 15, 15:53    [18181106]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
israelshamir
Member

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


Вот еще вариант говнокода

with cte as
(
select id, Value, lead(Value) over(order by id) as nextValue
from [Table] as O
)

select id, Value
from cte as O
where O.Value > O.nextValue;
22 сен 15, 16:06    [18181166]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить