格式
CASE WHEN condition
THEN result
[WHEN ...]
[ELSE result
]
END
CASE子句可以用于任何表达式可以有效存在的地方。condition
是一个返回boolean的表达式。如果结果为真,那么CASE表达式的结果就是符合条件的result
。如果结果为假,那么以相同方式搜寻随后的WHEN子句。如果没有WHEN condition
为真,那么CASE表达式的结果就是在ELSE子句里的值。如果省略了ELSE子句而且没有匹配的条件,结果为NULL。
例如:
SELECT a,
CASE WHEN a = 1 THEN 'one'
WHEN a = 2 THEN 'two'
ELSE 'other'
END
FROM test
a | case
--|--------
1 | one
2 | two
3 | other
4 | other
注意:所有result
表达式的数据的类型都必须可以转换成单一的输出类型。
除此之外,还有另外一种书写形式,如下所示:
CASE expression
WHEN value
THEN result
[WHEN ...]
[ELSE result
]
END
先计算expression
的值,然后与所有在WHEN子句中声明的value
对比,直到找到一个相等的。如果没有找到匹配的,则返回在ELSE子句里的result
(或者NULL)
以上例子也可以写成:
SELECT a,
CASE a WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'other'
END
FROM test
执行结果相同
分享到:
相关推荐
这个查询通过 `SUM` 函数与 `CASE WHEN` 的组合使用,可以轻松地统计出每种订单状态的数量。 ### 拼接字段 在 SQL 中,经常需要将多个字段或值合并成一个字符串。这可以通过使用字符串连接操作符(如 `+` 或 `||`...
在`WHERE`子句中使用`CASE WHEN`,我们可以动态地设置查询条件。假设我们有一个`employees`表,包含`salary`列,我们想找出薪资超过平均薪资的员工: ```sql SELECT * FROM employees WHERE salary > (CASE WHEN ...
本文将详细介绍如何在MySQL中使用`CASE WHEN`语句,并通过具体的例子来展示它的应用。 #### 二、基础知识介绍 1. **基本语法**: - CASE语句有两种形式: - 简单CASE表达式: ```sql CASE value WHEN [compare-...
在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...
在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...
一条sql语句就能让你case when then怎么用,什么时候用
### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...
Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...
在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...
mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法
下面我们将深入探讨`CASE WHEN`的使用方法,并结合给出的实例进行解析。 首先,创建一个名为`t_demo`的数据库表,包含`id`(主键)、`name`(姓名)、`age`(年龄)和`num`(分数)四个字段。表的创建语句如下: `...
1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...
例如,可以使用`CASE WHEN` 将国家人口数据按洲进行分组,如果知道每个国家所在的洲,可以直接计算各洲的人口总数。如果没有洲的信息,可能需要额外的地理数据或者创建视图来获取这些信息。 总之,`CASE WHEN` 是...
以下是一个关于如何在MySQL排序中使用`CASE WHEN`方法的详细说明。 ### 1. `CASE WHEN` 基本语法 `CASE WHEN` 的基本语法如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ...
在`GROUP BY`语句中,`CASE WHEN`可以与聚合函数结合使用,对分组后的数据进行进一步处理。如示例所示,计算红包金额(`redpackmoney`)的总和,并根据`isCheck`字段的值进行分类: ```sql SELECT SUM(redpackmoney...
以下是一个简单的例子,展示如何使用`CASE WHEN`来根据书籍价格分类: ```sql USE pubs; GO SELECT Title, 'Price Range' = CASE WHEN price IS NULL THEN 'Unpriced' WHEN price WHEN price BETWEEN 10...
本文将深入探讨如何使用`CASE WHEN`语句实现多条件查询,特别是针对给定的示例场景。 首先,让我们了解`CASE WHEN`的基本语法。`CASE WHEN`语句通常用于SQL查询中的`SELECT`, `WHERE`, `HAVING`等子句中,它允许...
在标题提到的“SQL集合函数中`CASE WHEN THEN` 使用技巧”中,主要讨论了如何利用`CASE WHEN THEN` 结合`COUNT()`函数在聚合查询中统计特定条件的数据。例如,如果我们要统计数据库中学生表(`student`)中不同省份的...
例如,在更新表中某些记录的状态时,可以使用CASE WHEN: ```sql UPDATE orders SET status = CASE WHEN order_date (CURDATE(), INTERVAL 1 MONTH) THEN '过期' ELSE '有效' END WHERE customer_id = 123; `...