oracle实现mysql的if_oracle中decode函数 VS mysql中的if函数和case函数

oracle中有decode函数,如下:

select sum(decode(sex,'男',0,1)) 男生数 from school;

统计男生数目,含义为:decode()中sex字段为男时,用1代替,然后计算总和

而mysql中没有该函数,替代的有case与if函数。

case函数

同样统计男女生人数,语句如下:

SELECT school,COUNT(school) 人数,

SUM(CASE

WHEN sex='男'THEN 1

ELSE 0

END)

男生数,

SUM(CASE

WHEN sex='女'THEN 1

ELSE 0

END)

女生数

FROM sch

GROUP BY sex,school

CASE可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在WHERE子句中使用CASE。

首先让我们看一下CASE的语法。在一般的SELECT中,其语法如下:

731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.pngSELECT=731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENTHEN731655954c7be9d8835ece551b5385f8.pngWHENTHEN731655954c7be9d8835ece551b5385f8.pngELSE731655954c7be9d8835ece551b5385f8.pngEND731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.png在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子: 

731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.pngUSEpubs 

731655954c7be9d8835ece551b5385f8.pngGO731655954c7be9d8835ece551b5385f8.pngSELECT731655954c7be9d8835ece551b5385f8.png     Title, 

731655954c7be9d8835ece551b5385f8.png'Price Range'=731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENpriceISNULLTHEN'Unpriced'731655954c7be9d8835ece551b5385f8.pngWHENprice<10THEN'Bargain'731655954c7be9d8835ece551b5385f8.pngWHENpriceBETWEEN10and20THEN'Average'731655954c7be9d8835ece551b5385f8.pngELSE'Gift to impress relatives'731655954c7be9d8835ece551b5385f8.pngEND731655954c7be9d8835ece551b5385f8.pngFROMtitles 

731655954c7be9d8835ece551b5385f8.pngORDERBYprice 

731655954c7be9d8835ece551b5385f8.pngGO731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.png这是CASE的典型用法,但是使用CASE其实可以做更多的事情。比方说下面的GROUPBY子句中的CASE: 

731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.pngSELECT'Number of Titles',Count(*) 

731655954c7be9d8835ece551b5385f8.pngFROMtitles 

731655954c7be9d8835ece551b5385f8.pngGROUPBY731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENpriceISNULLTHEN'Unpriced'731655954c7be9d8835ece551b5385f8.pngWHENprice<10THEN'Bargain'731655954c7be9d8835ece551b5385f8.pngWHENpriceBETWEEN10and20THEN'Average'731655954c7be9d8835ece551b5385f8.pngELSE'Gift to impress relatives'731655954c7be9d8835ece551b5385f8.pngEND731655954c7be9d8835ece551b5385f8.pngGO731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.png你甚至还可以组合这些选项,添加一个ORDERBY子句,如下所示: 

731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.pngUSEpubs 

731655954c7be9d8835ece551b5385f8.pngGO731655954c7be9d8835ece551b5385f8.pngSELECT731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENpriceISNULLTHEN'Unpriced'731655954c7be9d8835ece551b5385f8.pngWHENprice<10THEN'Bargain'731655954c7be9d8835ece551b5385f8.pngWHENpriceBETWEEN10and20THEN'Average'731655954c7be9d8835ece551b5385f8.pngELSE'Gift to impress relatives'731655954c7be9d8835ece551b5385f8.pngENDASRange, 

731655954c7be9d8835ece551b5385f8.png     Title 

731655954c7be9d8835ece551b5385f8.pngFROMtitles 

731655954c7be9d8835ece551b5385f8.pngGROUPBY731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENpriceISNULLTHEN'Unpriced'731655954c7be9d8835ece551b5385f8.pngWHENprice<10THEN'Bargain'731655954c7be9d8835ece551b5385f8.pngWHENpriceBETWEEN10and20THEN'Average'731655954c7be9d8835ece551b5385f8.pngELSE'Gift to impress relatives'731655954c7be9d8835ece551b5385f8.pngEND, 

731655954c7be9d8835ece551b5385f8.png     Title 

731655954c7be9d8835ece551b5385f8.pngORDERBY731655954c7be9d8835ece551b5385f8.pngCASE731655954c7be9d8835ece551b5385f8.pngWHENpriceISNULLTHEN'Unpriced'731655954c7be9d8835ece551b5385f8.pngWHENprice<10THEN'Bargain'731655954c7be9d8835ece551b5385f8.pngWHENpriceBETWEEN10and20THEN'Average'731655954c7be9d8835ece551b5385f8.pngELSE'Gift to impress relatives'731655954c7be9d8835ece551b5385f8.pngEND, 

731655954c7be9d8835ece551b5385f8.png     Title 

731655954c7be9d8835ece551b5385f8.pngGO731655954c7be9d8835ece551b5385f8.png 

731655954c7be9d8835ece551b5385f8.png注意,为了在GROUPBY块中使用CASE,查询语句需要在GROUPBY块中重复SELECT块中的CASE块。

if语句

同样统计男女生人数,语句如下:

SELECT school,COUNT(school) 人数,SUM(IF(sex='男',1,0)) 男生数,SUM(IF(sex='女',1,0)) 女生数,

SUM(IF(pass=1,1,0)) pass1,SUM(IF(pass=0,1,0)) pass0,

SUM(IF(state=1,1,0)) state1,SUM(IF(state=0,1,0)) state0

FROM sch

GROUP BY sex,school

语法和decode类似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

visio对象放入word显示不全_办公人士必学visio技能 手把手教你使用visio绘制项目全景图!...

Hi,大家好&#xff01;我是爱踢汪。今天本汪想问问你用什么总结项目&#xff0c;Word、PPT还是视频&#xff1f;下面我们聊聊画图。画图固然是为了好看&#xff0c;视觉上的冲击加深印象。更重要的是&#xff0c;图像模型带来的“潜台词”&#xff0c;有意想不到的效果&#xf…

mongoDB操作详细

简介 它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等 关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念 MongoDB中也同样有以上…

mysql 存储过程 on_MySQL存储过程的权限问题小结

MySQL的存储过程&#xff0c;没错&#xff0c;看起来好生僻的使用场景。问题源于一个开发同学提交了权限申请的工单&#xff0c;需要开通一些权限。本来是一个很正常的操作&#xff0c;但在我来看是比较着急且紧迫的&#xff0c;说来惭愧&#xff0c;忙着方向规划和开发的事情&…

mysql索引引擎_mysql搜索引擎和索引那些事

mysql的存储引擎三种存储方式**InnoDB **(默认)一个文件存储表结构&#xff0c;一个存储数据和目录(索引)# 一个文件 book_name | author| press | price | pub_date frm文件 frame的缩写# 另一个文件(数据 目录)# | 倚天屠龙记 | egon | 北京工业地雷出版社 | 70.00 | 2019-07…

深度ip转换器手机版app_房串串经纪人版app下载-房串串经纪人版app手机版 v1.0.0...

房串串经纪人版app&#xff1a;专门为房产经纪人打造的辅助办公软件&#xff0c;提供的功能非常的全面&#xff0c;涵盖了房产服务过程中的各个环节&#xff0c;随时可以手机在线处理自己的日常工作&#xff0c;提高了工作的效率&#xff0c;操作很简单&#xff0c;让你更好的实…

netduino之电源参考电路MC33269DT-5.0G

手里有块netduino的板子&#xff0c;一直闲置未用&#xff0c;netduino具体是什么不知道的就百度吧&#xff0c;我这也不是主要讲netduino开发的&#xff0c;简单说就是用.net开发硬件&#xff0c;了解到netduino也是原来学过C#&#xff0c;当然我主要的工作还是嵌入式硬件开发…

PowerShell使用教程

一、说明 1.1 背景说明 个人对PowerShell也不是很熟悉&#xff0c;开始的时候就突然看到开始菜单中多了个叫PowerShell的文件夹&#xff0c;后来一点就看到某个教程视频说PowerShell很厉害但也没怎么听&#xff0c;再后来就看到kali也有了一些PowerShell的脚本这才意识到PowerS…

python Gunicorn

1. 简介 Gunicorn(Green Unicorn)是给Unix用的WSGI HTTP 服务器&#xff0c;它与不同的web框架是非常兼容的、易安装、轻、速度快。 2. 示例代码1 def app(environ, start_response):data b"Hello World\n"start_response("200 OK", [("Content-Type…

如何使处于不同局域网的计算机实现远程通信_小区自来水二次加压泵站远程监控系统方案...

一、小区自来水二次加压泵站远程监控系统方案项目概述随着城市高效快速地发展&#xff0c;市区规模越来越大&#xff0c;小区二次加压泵房将继续增加&#xff0c;供水公司二次加压泵房管理工作将更加繁重。目前小区二次加压供水方式主要有两种&#xff0c;一种是不锈钢水箱不锈…

postgresql返回行数_怎么优化你的SQL查询?以PostgreSQL为例

实际工作中&#xff0c;我们每个人难免都会要写SQL&#xff0c;执行SQL&#xff0c;但是有时时候执行非常慢&#xff0c;甚至获得不了结果。这时候你会怎么办&#xff1f;放弃&#xff1f;去苦口婆心的求隔壁房间胡子擦擦的猥琐DBA大叔&#xff1f;NO&#xff0c;正确方法是先检…

echarts 词云_python Flask+爬虫制作股票查询、历史数据、股评词云网页

自学python的数据分析&#xff0c;爬虫后&#xff0c;花了几天时间看视频学习Flask做了一个简单的股票查询网页。本来还想着加入一些其他功能&#xff0c;比如财务指标分析&#xff0c;舆情分析&#xff0c;最完美的想法是做成一个股票评分系统&#xff0c;输入股票代码可以自动…

JavaSE基础知识(6)—异常和异常处理

一、异常的理解及体系结构图 1、理解 异常&#xff1a;程序运行过程中发生的不正常现象。java中的错误&#xff1a;   语法错误   运行异常   逻辑错误 2、体系图 java程序在执行过程中所发生的异常分为两类&#xff1a; Error&#xff1a;Java虚拟机无法解决的严重问题。…

peripheralStateNotificationCB

1 /*********************************************************************2 * fn peripheralStateNotificationCB 外围设备 状态 通知 回调函数3 *4 * brief Notification from the profile of a state change. 通知来自于profile的状态改变&#xff01;5 *6 * …

Jsp2.0自定义标签(第二天)——自定义循环标签

今天是学习自定义标签的第二天&#xff0c;主要是写一个自定义的循环标签。 先看效果图&#xff1a; 前台页面Jsp代码 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <%taglib prefix"myout…

正则表达式以什么开头以什么结尾_股票hk是什么意思,股票st开头是什么意思,新通联股票...

股票hk是什么意思,股票st开头是什么意思,新通联股票股票hk是什么意思,股票st开头是什么意思,新通联股票我们首先解决时间跨度问题&#xff1a;如果您为诸如退休之类的遥远目标投资&#xff0c;则应主要投资股票(同样&#xff0c;我们建议您通过共同基金投资)。心理控制第一&…

电脑显示连接了网络但是不能上网_为什么电脑插上网线显示已连接却上不了网...

尝试断一下网&#xff0c;或者重启一下系统看一下是否解决&#xff1b;也可能是开启了网络代理&#xff0c;可以重置一下浏览器或者网络设置&#xff1b;还可以使用安全管家软件&#xff0c;扫描一下网络设置。以下是详细介绍&#xff1a;1、有时候系统显示已经连接其实并没有真…

python getopterror_python3 getopt用法

python channel_builder.py -s /Users/graypn/ -d /Users/graypn/Documents -m 7 --outreport/xx.html参数也分长格式和短格式短格式&#xff1a;-s长格式&#xff1a;--sourceopts, args getopt.getopt(sys.argv[1:], "hs:d:m:v:p:c:",["help", "sr…

excel删除空行_Excel里99.9%的人都踩过的坑,早看早避开!

本文作者丨可可&#xff08;小 E 背后的小仙女&#xff09;本文由「秋叶 Excel」原创发布如需转载&#xff0c;请在公众号发送关键词「转载」查看说明2019 年上班第一天感觉怎么样呢&#xff1f;望着满屏幕铺天盖地的表格&#xff0c;我只能摸摸自己还没下去的小肚子&#xff0…

CentOS 6.5 Zabbix-agent3.2 安装 1.0版

1.关闭防火墙service iptables stop2.更换源、安装zabbix-agentrpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpmyum install -y zabbix-agent3.修改配置文件vim /etc/zabbix/zabbix_agentd.confServer192.168.8.228 ser…

centos下利用httpd搭建http服务器方法

centos下利用httpd搭建http服务器方法 1. 解决的问题 在开发测试过程中&#xff0c;分析图片任务需要将图片保存在服务器端&#xff0c;通过url来访问和下载该图片&#xff0c;这就需要使用一台图片服务器&#xff0c;但常常遇到图片服务器匮乏的情况&#xff0c;为了解决该问题…