순차적으로 증가하는 값을 가지고 있는 필드가 있습니다. identity속성이 있는건 아니고 그냥 varcahr 필드입니다. 정상적인 경우에는 1씩 증가합니다.
예를 들어
"0001"
"0002"
"0003"
그런데 값자기 숫자가 크게 뛸때가 있습니다.
"0004"
"1001"
이렇게요.
이건 패스
하지만
"0005"
'0009"
이렇게 100미만으로 차이를 보이는 모든 레코드를 찾으려고 합니다.
단, 100이상의 차이는 스킵합니다.
이렇게 쿼리를 구성하려고 합니다.
시작을 못하고 있습니다. 방향좀 잡아주세요.
감사합니다.
Comment 1
-
건우아빠
2013.07.01 10:03
with
data as (
select '0001' idx union all
select '0002' idx union all
select '0003' idx union all
select '0004' idx union all
select '0005' idx union all
select '0009' idx union all
select '1001' idx union all
select '1003' idx union all
select '1035' idx),
res as (
select idx , ROW_NUMBER() over(order by idx ) no
from data )
select b.idx , a.idx , convert(int,a.idx) - isnull( convert(int,b.idx),0)
from res a left join res b on a.no = b.no + 1
.....