2列范围之间的值

时间:2013-08-02 06:06:42

标签: sql sql-server

我有一个名为lovaluehivalue的简单表格。 我想传递一个数字,然后让表格扣除要返回的名称。

例如:

Name, Low, High
Black,  0,   10
Grey,  11,   20
White, 21,   30

如果传递数字11,则查询返回黑色 如果传递数字22,则查询返回白色。

3 个答案:

答案 0 :(得分:5)

当你说时,假设这是你问题中的拼写错误...如果数字11被传递,则查询返回黑色... 你可以这样做

SELECT name
  FROM Table1
 WHERE 11 BETWEEN low AND high

输出:

| NAME |
--------
| Grey |

这是 SQLFiddle 演示

答案 1 :(得分:0)

试试这个:

DECLARE @VALUE INT
SET @VALUE = 11

SELECT
    Name
FROM <TABLE>
WHERE @VALUE >= (Low + 1) AND  @VALUE <= (High + 1)

如果是拼写错误,请使用:

DECLARE @VALUE INT
SET @VALUE = 11

SELECT
   Name
FROM <TABLE>
WHERE @VALUE >= Low AND  @VALUE <= High

答案 2 :(得分:0)

试试这个:

DECLARE @Parameter INT = 15 

SELECT NAME 
FROM   TABLE 
WHERE  LOW <= @Parameter 
       AND HIGH >= @Parameter