【SQL系列】在SELECT语句中使用条件逻辑

简介: CASE 表达式

问题

在 SELECT 语句中,你想执行基于值的 IF-ELSE 操作。例如,在生成结果集时,你想在员工的薪水不超过 2000 时返回消息 UNDERPAID,在员工的薪水不低于 4000 时返回消息 OVERPAID,在员工的薪水为 2000~4000 时返回消息 OK。这个结果集如下所示。

解决方案

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

select name,

      salary,

      case

          when salary <= 2000 then 'UNDERPAID'

          when salary >= 4000 then 'OVERPAID'

          else 'OK'

          end as status

from emp;

扩展

CASE 表达式能够根据查询返回的值来执行条件逻辑。为了提高结果集的可读性,可以给CASE 表达式指定别名。上述解决方案给 CASE 表达式的结果指定了别名 STATUS。ELSE 子句是可选的。如果省略了 ELSE 子句,那么对于不满足测试条件的行,CASE 表达式将返回 NULL。

select name,

      salary,

      case

          when salary <= 2000 then 'UNDERPAID'

          when salary >= 4000 then 'OVERPAID'

          end as status

from emp;


点个赞吧,这对我非常重要!

目录
相关文章
|
3月前
|
SQL 存储 数据管理
阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
【2月更文挑战第9天】阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
52 2
|
3月前
|
SQL 数据库
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
32 0
|
5月前
|
SQL 数据库
SQL 查询优化指南:SELECT、SELECT DISTINCT、WHERE 和 ORDER BY
SQL的SELECT语句用于从数据库中选择数据。SELECT语句的基本语法如下:
58 1
|
5月前
|
SQL Oracle 关系型数据库
SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语
SELECT INTO 语句将数据从一个表复制到一个新表中。
62 1
|
5月前
|
SQL Oracle 关系型数据库
|
3月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
51 0
|
2月前
|
SQL 存储 关系型数据库
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
|
2月前
|
SQL 关系型数据库 MySQL
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
14 0
|
4月前
|
SQL 数据库管理
SQL基础题----基本的SELECT语句、order by排序
SQL基础题----基本的SELECT语句 ambiguous 模糊
177 1
|
4月前
|
SQL Kubernetes 调度
DataphinV3.14 Flink SQL任务支持基于Session集群调试,模拟生产代码逻辑的调试效果
实时研发一直以来的都是通过local-debug的方式来调试开发中的Flink SQL任务,该方式有如下不足: 1. 支持的采样数据有限,且非是流式数据的调试。 2. 手动上传构造数据的方式较为繁琐,局限性较大。 为便于Flink SQL任务的调试,DataphinV3.14版本支持Flink SQL任务基于Session集群调试,期望做到像离线即席查询般方便地获取实时任务的输出结果,方便用户对线上的真实数据进行代码逻辑上的调试。