2010-06-12 159 views
1

我有兩個字段的表:點,和水平,
一些樣本數據如下:
SQL SELECT語句

---------------- -------
Point |等級
-----------------------
10 | 1級
20 | 2級
30 | 3級
40 | 4級

假設有誰擁有25分,
找到該用戶是在水平,我用Select語句是一個用戶:

Select Level from Table where Point < 30 AND Point > 20; 

但選擇SQL ststament是一個硬拷貝
你可以看到字體30和20是固定的。
我想更改Select語句,以便新的SQL Select
語句可以應用於具有不同點的所有用戶
,但我不知道該怎麼做。

+0

你可能想要一個QUARTILE類型的結果?如果你不編碼的話,目標是什麼? – Randy 2010-06-13 13:47:35

回答

5
SELECT Level FROM Table WHERE Point<=25 ORDER BY POINT DESC LIMIT 1 

或者

SELECT Level FROM Table WHERE Point>=25 ORDER BY POINT LIMIT 1 

要看什麼級別的用戶有25點(2或3)。

+1

不應該是SELECT Level FROM表WHERE Point <= 25 ORDER BY POINT DESC LIMIT 1? – Maxem 2010-06-12 08:29:35

+0

@Maxem,你說得對,我更新了答案。我現在測試它。 – 2010-06-12 10:05:46

+0

-1答案不應被編碼爲25作爲硬編碼值。 – Randy 2010-06-13 13:46:33

0
select 
    case 
     when point between 20 and 30 then 30 
     /*optionally You can add more Cases */ 
     /*when some other then again other */ 
     else point 
    end as point 
from Table