考虑以下表格架构:
----------------------------------
| ID | MinValue | MaxValue |
----------------------------------
| 1 | 0 | 10 |
| 2 | 11 | 20 |
| 3 | 21 | 30 |
我希望能够传递一个整数,并让它返回适当的ID,其值与Min和Max Value之间的范围相匹配。
EG:
Input = 17
Output = 2
Input = 4
Output = 1
Input = 26
Output = 3
我以为我可以做类似的事情:
SELECT ID FROM MyTable WHERE MinValue >= @input AND MaxValue <= @input
但它不起作用,没有任何回报。
我确信这个解决方案很简单,但我很难过。
在SQL Server中实现此目的的最佳方法是什么?
答案 0 :(得分:15)
试试这个
SELECT ID FROM MyTable WHERE @input BETWEEN MinValue AND MaxValue
BEETWEEN的描述
SQL BETWEEN
条件用于检索SELECT
,INSERT
,UPDATE
或DELETE
语句范围内的值。
<强>语法强>
SQL BETWEEN
条件的语法是:
表达式BETWEEN value1 AND value2
;
参数或参数
表达式是一个列或计算。
value1
和value2
创建一个包含表达式的包含范围。
注意强>
SQL BETWEEN
条件将返回表达式在value1
和value2
(包括)范围内的记录。
参考:http://www.techonthenet.com/sql/between.php
或者您也可以使用
MinValue <= @input AND MaxValue >= @input
答案 1 :(得分:10)
试试这个,
SELECT ID FROM MyTable WHERE @input BETWEEN MinValue AND MaxValue.
或者在你的陈述中翻转等号。
SELECT ID FROM MyTable WHERE MinValue <= @input AND MaxValue >= @input
答案 2 :(得分:2)
使用BETWEEN
SELECT ID
FROM MyTable
WHERE @input BETWEEN MinValue AND MaxValue