SQL 在SELECT语句里使用条件逻辑

SQL 在SELECT语句里使用条件逻辑,你想在 SELECT 语句中针对查询结果值执行 IF-ELSE 操作。例如,你想生成类似这样的结果:如果员工的工资少于 2000 美元,就返回 UNDERPAID;如果超过 4000 美元就返回 OVERPAID;若介于两者之间则返回 OK。查询结果如下所示。

SQL 在SELECT语句里使用条件逻辑 问题

你想在 SELECT 语句中针对查询结果值执行 IF-ELSE 操作。例如,你想生成类似这样的结果:如果员工的工资少于 2000 美元,就返回 UNDERPAID;如果超过 4000 美元就返回 OVERPAID;若介于两者之间则返回 OK。查询结果如下所示。

ENAME             SAL STATUS
---------- ---------- ---------
SMITH             800 UNDERPAID
ALLEN            1600 UNDERPAID
WARD             1250 UNDERPAID
JONES            2975 OK
MARTIN           1250 UNDERPAID
BLAKE            2850 OK
CLARK            2450 OK
SCOTT            3000 OK
KING             5000 OVERPAID
TURNER           1500 UNDERPAID
ADAMS            1100 UNDERPAID
JAMES             950 UNDERPAID
FORD             3000 OK
MILLER           1300 UNDERPAID

SQL 在SELECT语句里使用条件逻辑 解决方案

SELECT 语句里直接使用 CASE 表达式来执行条件逻辑。

select ename,sal,
       case when sal <= 2000 then 'UNDERPAID'
            when sal >= 4000 then 'OVERPAID'
            else 'OK'
       end as status
from emp

SQL 在SELECT语句里使用条件逻辑 扩展知识

CASE 表达式能对查询结果执行条件逻辑判断。你可以为 CASE 表达式的执行结果取一个别名,使结果集更有可读性。就本例而言,STATUS 就是 CASE 表达式执行结果的别名。ELSE 子句是可选的,若没有它,对于不满足测试条件的行,CASE 表达式会返回 Null

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程