Dan*_*Dan 10 sql sql-server sql-server-2008
请考虑以下表模式:
----------------------------------
| ID | MinValue | MaxValue |
----------------------------------
| 1 | 0 | 10 |
| 2 | 11 | 20 |
| 3 | 21 | 30 |
Run Code Online (Sandbox Code Playgroud)
我希望能够传递一个整数,并让它返回适当的ID,其中该值与Min和Max Value之间的范围匹配.
例如:
Input = 17
Output = 2
Input = 4
Output = 1
Input = 26
Output = 3
Run Code Online (Sandbox Code Playgroud)
我以为我可以这样做:
SELECT ID FROM MyTable WHERE MinValue >= @input AND MaxValue <= @input
Run Code Online (Sandbox Code Playgroud)
但它不起作用,没有任何返回.
我确信这个解决方案很简单,但我很难过.
在SQL Server中实现此目的的最佳方法是什么?
Imr*_*han 17
试试这个
SELECT ID FROM MyTable WHERE @input BETWEEN MinValue AND MaxValue
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 10
试试这个,
SELECT ID FROM MyTable WHERE @input BETWEEN MinValue AND MaxValue.
Run Code Online (Sandbox Code Playgroud)
或者在你的陈述中翻转等号.
SELECT ID FROM MyTable WHERE MinValue <= @input AND MaxValue >= @input
Run Code Online (Sandbox Code Playgroud)