2012-05-02 68 views
0

假設我有一個數據庫表contianing名稱和標記爲100的一些學生沒有。我想根據他的分數給每個學生分配一個分數。我想導致形式爲:SQL查詢數據庫

GRADE NAME MARKS 
    A X  85 
    B Y  75 

讓是獎勵等級的標準如下:

A - if 85 <= marks < 100 

B - if 70 <= marks < 85 

請有人可以給我一個SQL查詢(最好是PostgreSQL的查詢)做上述計算。

+1

好像你只希望保留數字分數在數據庫和移動確定的業務邏輯, B,C等您的應用程序業務邏輯。您可能想要包含您正在使用的語言/程序的詳細信息。 – botbot

+0

@masterkrang我認爲這是一個合法的問題。在postgres中可以這樣做,所以不需要外部應用程序。 –

回答

4

那麼你可以嘗試這樣做:

select name, marks, 
CASE WHEN marks >= 85 THEN 'A' 
ELSE 'B' 
END AS grades 
FROM your_table 

您的意思是類似的東西

+2

你打敗了我。有一個upvote。另外,鏈接到相關文檔可能會很好:http://www.postgresql.org/docs/9.1/static/plpgsql-control-structures.html#PLPGSQL-CONDITIONALS –

+1

@NickRetallack:這是錯誤的鏈接。這裏顯示的'CASE'不是** PL/pgSQL條件。正確的鏈接是:http://www.postgresql.org/docs/9.1/static/functions-conditional.html#FUNCTIONS-CASE –

+0

@Nick,以及我執行由sudhir給出的postgres查詢,它只是工作正常 –