SQL - 查找一系列数字中的数字

时间:2016-05-30 11:10:41

标签: sql-server

SQL不是我的强项,我不知道如何提出这个问题,一些帮助将不胜感激。

我需要提取一系列数字之间的记录。所以我有一个数字,例如230,根据下表,它将返回60的速率。

MinR    MaxR   Rate
1       3000    60.00
3001    5000    50.00
5001    7000    48.00
7001    10000   45.00
10000   999999  43.00

逻辑上我已经尝试过 MinR> = 237和MaxR< = 237 ,但无济于事。

是否有一个简单的声明来实现这一点,或者我应该以编程方式处理它(光标,If..then等)

非常感谢 格雷厄姆

2 个答案:

答案 0 :(得分:1)

你几乎就在那里,你的逻辑倒退了。让我们看一下MinR >=237 and MaxR <=237并插入第一行的数字:

1 >= 237 AND 3000 <= 237

这种情况满足吗?显然不是:1不大于或等于237.如果你以相反的方式做到这一点:

MinR <= 237 AND MaxR >= 237

或者,为了提高可读性(以及将来避免这种错误):

237 BETWEEN MinR And MaxR

答案 1 :(得分:1)

您可以按如下方式使用BETWEEN

SELECT Rate
FROM YourTable
WHERE 230 BETWEEN MinR AND MaxR - 1

使用-1部分,这样就不会为一个输入获得两条记录。