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

Sql 选择一列数字接近10的记录,sql,sql-server,Sql,Sql Server,我有一个有三列的表。 其中之一是[code]。这张桌子上有很多记录 我想选择他们的[code]是定期接近10的数字的记录 例如,如果选择[code]=9的记录,那么选择[code]=8的记录等等。这是我根据您的想法实现的 如果希望接近记录或记录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),(

我有一个有三列的表。 其中之一是
[code]
。这张桌子上有很多记录

我想选择他们的
[code]
是定期接近
10
的数字的记录
例如,如果选择
[code]=9的记录,那么选择
[code]=8的记录等等。

这是我根据您的想法实现的

如果希望接近记录或记录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)

不够清楚。无法得到你想要的东西。显示您的查询尽管有一些示例数据。我没有任何查询,因为我无法从您的表中选择*,其中[Code]<10按代码顺序描述。。。这就是我从你的描述中得到的。。。花点力气吧。。。