sql语句中表格缩写命名_简述SQL中的case when语句

学习交流,欢迎留言

今天学习SQL,碰到了一个小问题,到底是“case 字段名 when……then……”还是“case when 条件判断……then……”呢?

不弄明白了不舒服斯基……打倒拦路虎fighting!

case when是流程控制语句,不过通常习惯性称为case when函数。

  • case when有两种格式

格式一:CASE 字段名称 WHEN 字段值 THEN 值1 ELSE 值2 END

CASE sex

WHEN ‘1’ THEN ‘男’

WHEN ‘0’ THEN ‘女’

ELSE ‘其他’

格式二:CASE WHEN 条件判断 THEN 值1 ELSE 值2 END

CASE WHEN sex = ‘1’ THEN ‘男’

WHEN sex = ‘0’ THEN ‘女’

ELSE ‘其他’ END

  • 用法一:对数据进行分组

有数据如下:

030fe37b7bbf895f21345e5db5389db4.png
图片引用自https://blog.csdn.net/STFPHP/article/details/53109295

要求:统计每个国家的男性人口和女性人口数量

SELECT country,

SUM(CASE WHEN sex = '1' THEN population ELSE 0 END)as '男性人口',

SUM(CASE WHEN sex = '2' THEN population ELSE 0 END)as '女性人口'

FROM Table_A

GROUP BY country;(注意这里除了sum聚合函数外,select子句中所有的字段都出现了哦,group by字段的用法注意了,我之前的文章中有写到哦~)

数据芝麻糊:group by、where、having用法及顺序​zhuanlan.zhihu.com
  • 用法二:将行转列,并配合聚合函数做统计(最终结果表现为将一维表格转换为二维表格)

下面这个例子引用自:

SQL之CASEWHEN用法详解__Rt-CSDN博客_sqlcasewhen用法​blog.csdn.net
c18e5b5dbc88ab8c2c7ba6dde6e48730.png

有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗

E_CODE E_VALUE E_TYPE

北京 28.50 0

北京 23.51 1

北京 28.12 2

北京 12.30 0

北京 15.46 1

上海 18.88 0

上海 16.66 1

上海 19.99 0

上海 10.05 0

现在,要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL语句输出结果

SELECT

E_CODE,

SUM(CASE WHEN E_TYPE = 0 THEN E_VALUE ELSE 0 END) AS WATER_ENERGY,

SUM(CASE WHEN E_TYPE = 1 THEN E_VALUE ELSE 0 END) AS ELE_ENERGY,

SUM(CASE WHEN E_TYPE = 2 THEN E_VALUE ELSE 0 END) AS HEAT_ENERGY

FROM THTF_ENERGY_TEST

GROUP BY E_CODE

输出结果如下:

E_CODE WATER_ENERGY ELE_ENERGY HEAT_ENERGY

北京 40.80 38.97 28.12

上海 48.92 16.66 0

总结一句:结合工作当中的具体场景,灵活使用吧,就这样么么哒~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值