从元素数组中查找T-SQL中最接近的值

时间:2015-04-28 07:34:58

标签: sql tsql sql-server-2012

使用积分兑换应用。我有一个查询返回点范围如下:

Point
-----
50    
100    
150

我有一个累积积分的局部变量。如果我有65分,那么我只能兑换50分。如果我有110,那么我将能够兑换100等等。

我尝试使用select case& between但它没有正确显示。

请帮助。

3 个答案:

答案 0 :(得分:5)

SELECT TOP 1 p.*
FROM Points p
WHERE p.Point <= @PointVar -- or < @PointVar
ORDER BY p.Point DESC

答案 1 :(得分:1)

尝试使用

下的子查询sa
select points
from tab
where points = (select max(points)
                from tab
                where pointst <=@locaL_variable )

答案 2 :(得分:1)

您可以尝试这样:

SELECT top 1 * FROM [myTable] 
ORDER BY ABS( points - @input )

<强> SQL FIDDLE DEMO