当前位置:首页 > MySQL教程 > 正文内容

mysql case语句怎样用?【MySQL教程】,mysql case语句

搜教程4年前 (2019-12-01)MySQL教程166
MySQL是一个关联型数据库治理体系,由瑞典MySQL AB 公司开辟,如今属于 Oracle 旗下产物。

那末个中mysql case语句怎样用?

mysql case语句用法:

构造:case when… then …end

1.推断的同时转变其值

eg:

select OperatorAccount,
        case
     when CreateTime>'2016-02-14 16:24:42' then 'after'
         when CreateTime<'2016-02-14 16:24:42' then 'before'
         else 'now' end stage
from log_login order by CreateTime DESC

第二种写法

 SELECT CallerNumber, CASE IsLocal
         WHEN 0 THEN '外线'
          WHEN 1 THEN '内线' END
  FROM cdr

2.拆分一行动多列

eg:

SELECT SipAccount, COUNT(1) AS number,IsCheck
  FROM cdr
  GROUP BY SipAccount,IsCheck

针对这个统计效果举行拆分(0示意未打分,1代表优异,2代表及格,3代表不及格)

终究效果以下:

所以终究要用到行拆分红三列,语句以下

 SELECT SipAccount,
              (CASE IsCheck WHEN 1 THEN number END) youxiu,
              (CASE IsCheck WHEN 2 THEN number END) hege,
              (CASE IsCheck WHEN 3 THEN number END) buhege
 FROM
          (SELECT SipAccount, COUNT(1) AS number,IsCheck
           FROM cdr
           GROUP BY SipAccount,IsCheck) AS a

如今效果是如许的,你会发明虽然拆成了三列,然则终究效果还不是本身须要的,接下来就须要依据sipaccount来分组的同时对效果举行处理了。语句以下:

 SELECT sipaccount,
        IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu,
        IF(MAX(hege) IS NULL,0, MAX(hege)) hege,
        IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege
FROM
        (SELECT SipAccount,
        (CASE IsCheck WHEN 1 THEN number END) youxiu,
        (CASE IsCheck WHEN 2 THEN number END) hege,
        (CASE IsCheck WHEN 3 THEN number END) buhege
        FROM
     (SELECT SipAccount, COUNT(1) AS number,IsCheck  FROM cdr  GROUP BY SipAccount,IsCheck) AS a) AS b
                    GROUP BY sipaccount

终究得到了这个效果。恰是我们须要的花样。

以上就是mysql case语句怎样用?的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16075.html

分享给朋友:

“mysql case语句怎样用?【MySQL教程】,mysql case语句” 的相关文章

mysql群集索引的有哪些瑕玷【MySQL教程】,mysql,缺点,哪些

 聚簇索引并非一种零丁的索引范例,而是一种数据存储体式格局(不是数据构造,而是存储构造),细致细节依赖于其完成体式格局,但innodb的聚簇索引实际上是在同一个构造中保留了btree索引和数据行。   当表有索引时,它的数据行实际上存放在索引的叶子页中,属于聚簇示意数据行和相邻的键值紧凑地存储在一...

MySQL找回用户数据的实例详解【MySQL教程】,MySQL,实例,数据

MySQL找回用户数据的实例详解【MySQL教程】,MySQL,实例,数据

事变经由 有天,我们公司外区的一个贩卖C说他8月3号之前的工作流纪录找不到了。问清启事,本来是更新了微信号(我们公司的工作流是基于企业微信开辟的)。经由剖析,微信号和流程数据并没什么关系,所以开端得出结论:原本只需要更新微信号的,效果我们公司的流程体系管理员把用户先删除,再创建了新的用户。...

Centos7怎样应用yum装置Mysql5.7.19的具体方法【MySQL教程】,Mysql5.7.19,Centos7,安装

Centos7怎样应用yum装置Mysql5.7.19的具体方法【MySQL教程】,Mysql5.7.19,Centos7,安装

本篇文章重要引见了Centos7运用yum装置Mysql5.7.19的细致步骤,小编以为挺不错的,如今分享给人人,也给人人做个参考。一同追随小编过来看看吧 Centos7的yum源中默许是没有mysql,由于如今已用mariaDB替代mysql了。 起首我们下载mysql的repo源,我们能...

MySQL表数据文件破坏致使数据库没法启动详解【MySQL教程】,MySQL,导致,损坏

一、题目日记 2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally! 2017-08-31 14:18:05 4122 [Note] InnoDB: Starting crash recovery...

关于MySQL竖立新用户并受权的要领【MySQL教程】,MySQL,授权,用户

竖立用户的语法: Create user `username`@host [Identified by [password] `password`]; Username:用户名 Host:主机名,当地主机可以用localhost或许ip地点,然则其他电脑必须用...

Navicat for MySQL定时备份数据库及数据恢复操纵【MySQL教程】,Navicat,MySQL,数据库

Navicat for MySQL定时备份数据库及数据恢复操纵【MySQL教程】,Navicat,MySQL,数据库

在做数据库修正或删除操纵中,可能会致使数据毛病,以至数据库奔溃,而有用的定时备份能很好地庇护数据库。本篇文章重要报告Navicat for MySQL定时备份数据库和数据恢复等功能,同时能够定时播放影戏等设置,愿望对您有所协助,假如文章中存在毛病或不足之处,还请包涵~ 一. 设置设计使命定...