首页 > 数据库 >mysql中case用法

mysql中case用法

时间:2023-02-21 11:04:12浏览次数:34  
标签:case CASE commands END playerType WHEN 用法 mysql ELSE

转载请注明出处:

        简单CASE语句仅允许您将表达式的值与一组不同的值进行匹配。 为了执行更复杂的匹配,如范围,您可以使用可搜索CASE语句。
可搜索CASE语句等同于IF语句,但是它的构造更加可读。以下说明可搜索CASE语句的语法:
        CASE
            WHEN condition_1 THEN commands
            WHEN condition_2 THEN commands
            ...
        ELSE commands
        END CASE;
        
        MySQL评估求值WHEN子句中的每个条件,直到找到一个值为TRUE的条件,然后执行THEN子句中的相应命令(commands)。
如果没有一个条件为TRUE,则执行ELSE子句中的命令(commands)。如果不指定ELSE子句,并且没有一个条件为TRUE,MySQL将发出错误消息。

       实例:

SELECT CASE u.playerType WHEN '1' THEN u.num ELSE 0 END AS 'livePlayCount', CASE u.playerType WHEN '2' THEN u.num ELSE 0 END AS 'vodPlayCount', CASE u.playerType WHEN '1' THEN u.flowNum ELSE 0 END AS 'liveFlow', CASE u.playerType WHEN '2' THEN u.flowNum ELSE 0 END AS 'vodFlow', 0 AS 'storeSpace'
, 0 AS 'storeResidueSpace'
FROM (
SELECT playerType, COUNT(*) AS num, ifnull(SUM(bytesSend),0) AS 'flowNum'
FROM tbl_player_statistics
WHERE playerTime BETWEEN CONCAT(DATE_FORMAT(#{month},'%Y-%m'),'-01 00:00:00') AND CONCAT(DATE_FORMAT(last_day(#{month}),'%Y-%m-%d'),' 23:59:59')
GROUP BY playerType
)

 



标签:case,CASE,commands,END,playerType,WHEN,用法,mysql,ELSE
From: https://blog.51cto.com/u_15535797/6076083

相关文章

  • mybatis中mysql转义讲解
    本文为博主原创,未经允许不得转载:     在mybatis中写sql的时候,遇到特殊字符在加载解析的时候,会进行转义,所以在mybatis中写sql语句的时候,遇到特殊字符进行转义处理。 ......
  • com.mysql.jdbc.PacketTooBigException,及mysql 设置 max_allow_packet
    本文为博主原创,未经允许不得转载:     在进行批量导入表格数据入库操作时,报了以下错误: 错误分析:       mysql根据配置文件会限制server接受的数据包大小。有......
  • mysql表分区存储过程
    本文为博主原创,未经允许不得转载:由于数据库一张表数据量有几千万条,而且在不断增长,看见公司前辈写了一个创建表分区的存储过程,感觉甚是牛逼,在此供自己保留学习。/*PROCED......
  • mysql8.0的可用方案
    1.在/use/local下创建mysql文件夹mkdirmysql2.切换到mysql文件夹下cdmysql3.下载mysqlwgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-......
  • 基于 springboot + mybatis-plus + MySQL 重构过去一个项目的踩坑总结(持续更新)
    ①使用mybatis-plus时,如果根据某个条件查询没有查到数据,那么返回的实体类是null,如果使用get方法就会导致空指针异常,这点要规避②如果Map初始化在循环体外,那么在循......
  • Mysql自增ID用完了会咋样?
    这个问题其实可以分为有主键&无主键两种情况回答。国际惯例,先上张脑图:02有主键如果你的表有主键,并且把主键设置为自增。在MySQL中,一般会把主键设置成int型。而MySQ......
  • mysql触发器对于null值的处理
    mysql的触发器是不会对null值进行直接监控的,需要手动对于null值做处理这样处理null值就可以NEW.prom_priceisnotnullandOLD.prom_priceisnull......
  • Mysql的版本号实现可重复读
    mysql基于乐观锁原理实现的mvcc(Multi-VersionConcurrencyControl,多版本并发控制)mysql默认隔离级别就是可重复读,这个隔离级别解决了不可重复读和脏读,所谓不可重复读就是......
  • 最新JAVA实现导出mysql表结构到Word
    JAVA实现导出mysql表结构到Word1.引入jar包<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId>......
  • git常见用法
      图片来自https://www.runoob.com/git/git-basic-operations.html新建/复制git仓库:1.gitinit2.gitclone<SSH[address]>查看/创建/删除分支:gitbranch/git......