`
eriol
  • 浏览: 405610 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CASE WHEN的使用

    博客分类:
  • SQL
 
阅读更多

格式

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


执行结果相同

分享到:
评论

相关推荐

    case when和sum case when 写法及拼接字段

    这个查询通过 `SUM` 函数与 `CASE WHEN` 的组合使用,可以轻松地统计出每种订单状态的数量。 ### 拼接字段 在 SQL 中,经常需要将多个字段或值合并成一个字符串。这可以通过使用字符串连接操作符(如 `+` 或 `||`...

    oracle where case when where后面跟case when

    在`WHERE`子句中使用`CASE WHEN`,我们可以动态地设置查询条件。假设我们有一个`employees`表,包含`salary`列,我们想找出薪资超过平均薪资的员工: ```sql SELECT * FROM employees WHERE salary > (CASE WHEN ...

    详细解析 mysql 中的 case when 语句的使用

    本文将详细介绍如何在MySQL中使用`CASE WHEN`语句,并通过具体的例子来展示它的应用。 #### 二、基础知识介绍 1. **基本语法**: - CASE语句有两种形式: - 简单CASE表达式: ```sql CASE value WHEN [compare-...

    Oracle_case_when_用法

    在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...

    case when then

    一条sql语句就能让你case when then怎么用,什么时候用

    sql数据库 转 Access SQL语句改写之 Case When Then When Then Else End

    ### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...

    casewhen多条件oracle-casewhen(casewhen同时满足多条件).pdf

    Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    case乱码解决

    mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法

    MySQL case when使用方法实例解析

    下面我们将深入探讨`CASE WHEN`的使用方法,并结合给出的实例进行解析。 首先,创建一个名为`t_demo`的数据库表,包含`id`(主键)、`name`(姓名)、`age`(年龄)和`num`(分数)四个字段。表的创建语句如下: `...

    oracle case when 语句的用法详解

    1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...

    SqlServer使用 case when 解决多条件模糊查询问题

    例如,可以使用`CASE WHEN` 将国家人口数据按洲进行分组,如果知道每个国家所在的洲,可以直接计算各洲的人口总数。如果没有洲的信息,可能需要额外的地理数据或者创建视图来获取这些信息。 总之,`CASE WHEN` 是...

    decode函数与case when 的妙用

    在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...

    sql 中 case when 语法使用方法

    以下是一个简单的例子,展示如何使用`CASE WHEN`来根据书籍价格分类: ```sql USE pubs; GO SELECT Title, 'Price Range' = CASE WHEN price IS NULL THEN 'Unpriced' WHEN price WHEN price BETWEEN 10...

    SQL集合函数中case when then 使用技巧

    在标题提到的“SQL集合函数中`CASE WHEN THEN` 使用技巧”中,主要讨论了如何利用`CASE WHEN THEN` 结合`COUNT()`函数在聚合查询中统计特定条件的数据。例如,如果我们要统计数据库中学生表(`student`)中不同省份的...

    MySQL排序中使用CASE WHEN的方法示例

    以下是一个关于如何在MySQL排序中使用`CASE WHEN`方法的详细说明。 ### 1. `CASE WHEN` 基本语法 `CASE WHEN` 的基本语法如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ...

    MySQL 的CASE WHEN 语句使用说明

    例如,在更新表中某些记录的状态时,可以使用CASE WHEN: ```sql UPDATE orders SET status = CASE WHEN order_date (CURDATE(), INTERVAL 1 MONTH) THEN '过期' ELSE '有效' END WHERE customer_id = 123; `...

    mysql case when group by 实例详解

    mysql 中类似php switch case 的语句。 select xx字段, case 字段 when 条件1 then 值1  when 条件2 then 值2 else 其他值 END 别名  ...使用case when : select sum(redpackmoney) as stota, (CASE i

Global site tag (gtag.js) - Google Analytics