选择一列是接近10的数字的记录

时间:2015-02-07 05:54:36

标签: sql sql-server

我有一个包含3列的表格。 其中一个是[Code]。我在这张桌子上有很多记录。

我想定期选择[Code]数字接近10的记录 例如,如果选择具有[Code]=9的记录,则选择具有[Code] = 8等的记录...

1 个答案:

答案 0 :(得分:2)

这是我基于你实现的。

如果您希望接近记录或记录ID,而不是值,那么您只能将条件a.data更改为a.rid

declare @t table (data int)

insert into @t values(1), (2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(50),(51),(52)

declare @value int = 11 , @getDatToValue int = 2
select * from
(
    select * , ROW_NUMBER( ) over(order by data) rid
    from @t 
)
a
where 
a.data between (@value - @getDatToValue) and (@value + @getDatToValue)