2013-08-02 202 views
-3

我有一個簡單的表格,名稱爲lovalue,hivalue。 我想傳遞一個數字,然後讓表格扣除要返回的名稱。2列範圍內的值

例如:

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

如果11號是通過查詢返回黑色。
如果通過數字22,查詢返回白色。

+0

什麼,如果20是通過? –

+0

我猜11 - >黑色是一個錯字? –

+1

如果數字11通過,則查詢返回黑色。 這是一個錯字還是在這裏有一些隱藏的邏輯? – Gidil

回答

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 
0

試試這個:

DECLARE @Parameter INT = 15 

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

它會返回值爲11的灰色,但OP要黑色 –

5

假設它在你的問題中錯字,當你說...如果數字11通過查詢返回黑色...你可以做到這一點

SELECT name 
    FROM Table1 
WHERE 11 BETWEEN low AND high 

輸出:

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

這裏是SQLFiddle演示

+0

@ user2430812它有幫助嗎?你的問題需要更多幫助嗎? – peterm