Sql 值介于2列范围之间

Sql 值介于2列范围之间,sql,sql-server,Sql,Sql Server,我有一个简单的表,名为lovalue,hivalue。 我想传递一个数字,然后让表扣除要返回的名称 例如: Name, Low, High Black, 0, 10 Grey, 11, 20 White, 21, 30 如果传递了数字11,则查询返回黑色。 如果数字22被传递,则查询返回白色。尝试以下操作: DECLARE @VALUE INT SET @VALUE = 11 SELECT Name FROM <TABLE> WHERE @VALUE >

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

例如:

Name, Low, High Black, 0, 10 Grey, 11, 20 White, 21, 30
如果传递了数字11,则查询返回黑色。 如果数字22被传递,则查询返回白色。

尝试以下操作:

DECLARE @VALUE INT
SET @VALUE = 11

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

SELECT NAME 
FROM   TABLE 
WHERE  LOW <= @Parameter 
       AND HIGH >= @Parameter 
如果是打字错误,请使用以下命令:

DECLARE @VALUE INT
SET @VALUE = 11

SELECT
   Name
FROM <TABLE>
WHERE @VALUE >= Low AND  @VALUE <= High
试试这个:

DECLARE @VALUE INT
SET @VALUE = 11

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

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

假设你的问题中有一个输入错误,当你说…如果数字11被传递,查询返回黑色。。。你可以这样做

SELECT name
  FROM Table1
 WHERE 11 BETWEEN low AND high
输出:

| NAME | -------- | Grey |
这里是演示

如果20通过了怎么办?我猜11->黑色是一个输入错误?如果数字11通过了,查询返回黑色。这是一个输入错误还是有一些隐藏的逻辑?它将返回值11的灰色,但OP需要black@user2430812有帮助吗?你的问题需要更多的帮助吗?