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+ 次浏览

开启您的 职业

完成课程即可获得认证

入门
广告
© . All rights reserved.