什么时候在 PostgreSQL 中?

如果您是程序员,您可能对 IF-ELSE 语句非常熟悉。PostgreSQL 中的等价物是 CASE WHEN。

让我们通过一个例子来理解。如果您有包含学生百分比分数的表格标记,并且您想了解学生是否通过或未通过。下面给出了一个示例表。

名称perc_marks
Anil24
Joy65
Ron42
Reena87

假设及格分数是 40。现在,如果学生的分数超过 40 分,我们希望在该学生的姓名上打印“通过”,否则打印“失败”。这就是你可以做到的 -

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

输出将是 -

名称地位
Anil失败
Joy经过
Ron经过
Reena经过

请记住,CASE WHEN 表达式末尾的 END 很重要。您可以添加多个 WHEN 语句。假设你想说那些得分超过 80 分的人的状态为“DISTINCTION”,在 40 到 80 分之间,他们的状态为“通过”,而低于 40 分,他们的状态为“失败”,您可以按如下方式进行操作:

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

输出将是 -

名称地位
Anil失败
Joy经过
Ron经过
Reena区别