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 |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP