Обновление на основе последовательности / ранга в SQL Server 2008? - PullRequest
1 голос
/ 30 октября 2011

Таблица выглядит следующим образом:

create table #rankme (rankmeid int identity(1000, 1) primary key, 
                      step int null, checkvalue int null)

insert into #rankme values ( 10 , 1 )
insert into #rankme values ( 15 , null )
insert into #rankme values ( 20 , null )
insert into #rankme values ( 40 , null )

select * from #rankme order by step,checkvalue

Принимая step в качестве параметра, я пытаюсь выяснить, является ли запрошенный checkvalue для того, который перед step, который я запрашивал, равен нулю.

Поэтому я хочу выбрать where step=20 и получить NULL.

И я хочу выбрать where step=15 и получить 1.

Я былпытаясь придумать что-то, основанное на «ранге-1», но пока без сигары.

Помогите?

1 Ответ

2 голосов
/ 30 октября 2011
declare @step int = 15

select top(1) R.checkvalue
from #rankme as R
where R.step < @step
order by R.step desc
...