PostgreSQL 中的 CASE WHEN?


如果你是一名程式設計師,你可能會非常熟悉 IF-ELSE 語句。PostgreSQL 中的等效語句是 CASE WHEN。

我們透過一個例子來理解。如果你有一個名為 marks 的表格,其中包含學生的百分比分數,並且你想找出學生是否透過或未透過。下面給出了一個示例表格。

nameperc_marks
Anil24
Joy65
Ron42
Reena87

假設及格分數是 40。現在,如果學生的成績高於 40 分,我們要在該學生的名字後面列印“PASS”,否則列印“FAIL”。以下是如何做到這一點 −

SELECT name, CASE WHEN perc_marks >= 40 THEN 'PASS' ELSE 'FAIL' END
status from marks

輸出將是 −

namestatus
AnilFAIL
JoyPASS
RonPASS
ReenaPASS

請記住,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

輸出將是 −

namestatus
AnilFAIL
JoyPASS
RonPASS
ReenaDISTINCTION


更新於: 02-Feb-2021

2K+ 次瀏覽

開啟您的 職業

完成課程即可獲得認證

入門
廣告