PostgreSQL 中的 CASE WHEN?
如果你是一名程式設計師,你可能會非常熟悉 IF-ELSE 語句。PostgreSQL 中的等效語句是 CASE WHEN。
我們透過一個例子來理解。如果你有一個名為 marks 的表格,其中包含學生的百分比分數,並且你想找出學生是否透過或未透過。下面給出了一個示例表格。
name | perc_marks |
---|---|
Anil | 24 |
Joy | 65 |
Ron | 42 |
Reena | 87 |
假設及格分數是 40。現在,如果學生的成績高於 40 分,我們要在該學生的名字後面列印“PASS”,否則列印“FAIL”。以下是如何做到這一點 −
SELECT name, CASE WHEN perc_marks >= 40 THEN 'PASS' ELSE 'FAIL' END status from marks
輸出將是 −
name | status |
---|---|
Anil | FAIL |
Joy | PASS |
Ron | PASS |
Reena | PASS |
請記住,CASE WHEN 表示式末尾的 END 非常重要。你可以新增多個 WHEN 語句。假設你想說那些成績高於 80 分的學生狀態是“DISTINCTION”,40 到 80 分之間的狀態是“PASS”,而 40 分以下的狀態是“FAIL”,你可以按如下方式進行 −
SELECT name, CASE WHEN perc_marks >= 80 THEN 'DISTINCTION' WHEN perc_marks >= 40 and perc_marks < 80 THEN 'PASS' ELSE 'FAIL' END status from marks
輸出將是 −
name | status |
---|---|
Anil | FAIL |
Joy | PASS |
Ron | PASS |
Reena | DISTINCTION |
廣告