`
nmx253
  • 浏览: 24318 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

mysql中case when语句的使用方法

阅读更多

摘自:PHP自学网
mysql中case when语句的使用方法:
mysql中也有像php语言中switch case 这样的语句。
例如,下面的语句显示中文年月
select getdate() as 日期,case month(getdate())
when 11 then '十一'
when 12 then '十二'
else substring('一二三四五六七八九十', month(getdate()),1)
end+'月' as 月份
CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。
首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
SELECT <myColumnSpec> =
CASE
WHEN <A> THEN <somethingA>
WHEN <B> THEN <somethingB>
ELSE <somethingE>
END
在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
FROM titles
ORDER BY price
GO
这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:
SELECT 'Number of Titles', Count(*)
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
GO
你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:
USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
GO
注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
除了选择自定义字段之外,在很多情况下 CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。
分享到:
评论

相关推荐

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

    ### MySQL中的Case When语句详解 #### 一、引言 在MySQL中,`CASE WHEN`语句是一种非常有用的控制流程语句,它允许开发者根据不同的条件返回不同的结果。这在处理复杂的数据筛选和聚合任务时特别有用。本文将详细...

    MySQL中使用case when 语句实现多条件查询的方法

    在MySQL数据库中,`CASE WHEN` 语句是一种强大的条件表达式,用于在查询中进行复杂的逻辑判断。本文将深入探讨如何使用`CASE WHEN`语句实现多条件查询,特别是针对给定的示例场景。 首先,让我们了解`CASE WHEN`的...

    case乱码解决

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

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

    这种结构非常适合在报表中使用,能够帮助我们快速获取所需的数据统计结果。 #### 基本语法 ```sql SELECT SUM(CASE WHEN condition THEN value ELSE 0 END) AS total FROM table; ``` 其中: - `condition` 是...

    MySQL的CASE WHEN语句的几个使用实例

    MySQL中的CASE WHEN语句是一种非常实用的SQL构造,它允许你在单个查询中根据不同的条件执行不同的操作,比如数据转换、分类或者计算。这个语句主要用于处理复杂的逻辑判断,尤其在需要对数据进行条件性处理时,CASE ...

    mysql存储过程之case语句用法实例详解

    MySQL中的CASE语句是SQL语言中的一个重要组成部分,它在存储过程和复杂查询中扮演着条件判断的角色,使得代码更加简洁易读。CASE语句提供了两种形式:简单CASE和可搜索CASE。 1. 简单CASE语句: 简单CASE语句主要...

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

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

    MySQL性能优化的最佳21条经验

    4. **查询优化**:尽量避免在WHERE子句中使用复杂的表达式和函数,这可能导致无法使用索引。使用EXPLAIN分析查询计划,找出潜在瓶颈。 5. **JOIN操作优化**:尽量减少JOIN操作,如果必须使用,确保JOIN条件有索引,...

    MySQL 中CASE-WHEN 的应用.pdf

    MySQL中的CASE-WHEN是SQL语言中的一个非常强大的条件表达式,用于在查询中实现复杂的条件判断和逻辑操作。它在数据分析、报表生成以及各种业务统计中有着广泛的应用。本文将深入探讨CASE-WHEN的用法,并结合一个问卷...

    MySQL数据库:流程控制语句case.pptx

    2)掌握 —— CASE语句的使用方法; case语句 CASE语句语法格式为: 第一种: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE ...

    mysql case when group by 实例详解

    在`GROUP BY`语句中,`CASE WHEN`可以与聚合函数结合使用,对分组后的数据进行进一步处理。如示例所示,计算红包金额(`redpackmoney`)的总和,并根据`isCheck`字段的值进行分类: ```sql SELECT SUM(redpackmoney...

    MySQL中的if和case语句使用总结

    Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 &lt;&gt; 0 and expr1 &lt;&gt; NULL),则 IF()的...

    mysql if语句的使用,10多年工作总结

    在本文中,我们详细介绍了 MySQL 的 IF 语句的使用方法和场景分析。IF 语句是一种简化逻辑判断的方法,用于实现简单的逻辑判断。同时,我们也介绍了 CASE 语句和 IFNULL 语句的使用方法。 七、补充 在 MySQL 中,...

    mysql if语句的使用

    本文将详细介绍 MySQL 中的 IF 语句的使用,包括 IF(expr,v1,v2)、IFNULL(v1,v2) 和 CASE 语句。 一、IF(expr,v1,v2) 语句 IF(expr,v1,v2) 语句是 MySQL 中最基本的条件判断语句,语法格式如下: ```sql IF(expr, ...

Global site tag (gtag.js) - Google Analytics