博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SUM统计使用CASE WHEN
阅读量:6241 次
发布时间:2019-06-22

本文共 1484 字,大约阅读时间需要 4 分钟。

hot3.png

SUM统计使用CASE WHEN

如下建立表结构,

create table test (id int not null AUTO_INCREMENT,type int not null,value int not null,primary key (id));INSERT INTO test (type,value)VALUES(1,1),(2,2),(3,3),(4,4);

根据 根据type的值,value取不同的值,然后sum,如下,

select sum(case when type = 1 then value * 0.1 when type = 2 then value * 0.2 when type = 3 then value *0.3 when type = 4 then value * 0.4 else value end) as totalfrom test ;

还比如说,如下的表结构,

create table test1(id int not null AUTO_INCREMENT,name varchar(50) not null,birthday date not null,primary key (id))INSERT INTO test1(name,birthday) VALUES('ll','1991-11-01'),('yy','2000-11-01'),('ss','2008-11-01'),('dd','2010-11-01');

如下查询,

select name , case when birthday < '1995-11-01' then 'old' when birthday < '2000-11-01' then 'ok' whenbirthday < '2011-11-01' then 'young' else 'too  native' end  as hello from test1 ;

这就是case when 的基本用法。

SQL中还有其他的判断语句,如 IF 和 IFNULL,如下表结构,

create table test2 (id int not null AUTO_INCREMENT,name varchar(50) not null,sex int not null,primary key (id));insert into test2 (name,sex) value('sdsd',1),('sdwe',2);

使用 IF 如下查询,

select name , if(sex = 1, 'male','fmale') as sex from test2 ;

IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

IFNULL(expr1,expr2)

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

========================END========================

转载于:https://my.oschina.net/xinxingegeya/blog/476305

你可能感兴趣的文章
Provisioning Services 7.6 入门到精通系列之五:PVS控制台安装
查看>>
awk工具
查看>>
设计模式-代理模式(Proxy)
查看>>
Windows Sharepoint services 3.0部署体验
查看>>
[分享] Mac 键盘和Pc键盘对照表
查看>>
windows下批量杀死进程
查看>>
第七章:面向对象(三)
查看>>
android-ripple-background
查看>>
我的友情链接
查看>>
编译安装Apache服务要点
查看>>
Arrays.copy()和ArrayList.clone()
查看>>
mosquitto安装、配置、测试、paho.mqtt-spy安装
查看>>
我的友情链接
查看>>
Eclispe 安装插件 Properties Editor
查看>>
ReactiveCocoa RACDelegateProxy
查看>>
网站架构案例精解
查看>>
iOS提示框,为什么你应该使用 MBProgressHUD?
查看>>
思科GLC-T、GLC-TE与SFP-GE-T电模块的区别
查看>>
Spring AOP 的 afterReturing 为什么不能改变返回值
查看>>
在Oracle RAC环境下创建数据库时提示不能验证ASMSNMP密码问题的解决(ORA-01017)
查看>>