【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;


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

目录
相关文章
|
5月前
|
SQL Java 数据库
建模底层逻辑问题之ORM框架建模中,执行SQL的过程中被抽象和组织是如何实现的
建模底层逻辑问题之ORM框架建模中,执行SQL的过程中被抽象和组织是如何实现的
|
6月前
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
5月前
|
SQL 数据挖掘 大数据
如何在 SQL Server 中使用 `SELECT TOP`
【8月更文挑战第10天】
224 7
如何在 SQL Server 中使用 `SELECT TOP`
|
4月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
78 1
|
5月前
|
SQL 流计算
Flink SQL 在快手实践问题之CUMULATE窗口的划分逻辑如何解决
Flink SQL 在快手实践问题之CUMULATE窗口的划分逻辑如何解决
120 2
|
5月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
59 5
|
5月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
147 0
|
5月前
|
SQL 数据挖掘 关系型数据库
|
5月前
|
SQL
访问者模式问题之构造一个包含 select、from 和 where 子句的 SQL 节点树,如何解决
访问者模式问题之构造一个包含 select、from 和 where 子句的 SQL 节点树,如何解决
|
6月前
|
SQL Oracle 关系型数据库
SQL SELECT TOP 子句
【7月更文挑战第12天】SQL SELECT TOP 子句。
55 14