博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
case when 用法
阅读量:5246 次
发布时间:2019-06-14

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

1.  case、group by组合用法

首先看看表中的内容  (COUNTRY 、 POPULATION、  SEX)

COUNTRY      POPULATION   SEX中国        340            1中国        260            2美国         45            1美国         55            2加拿大       51            1加拿大       49            2英国         40            1英国         60            2法国        150            1法国        150            2日本        150            1日本        100            2德国        100            1德国        100            2墨西哥       25            1墨西哥       25            2印度        100            1印度        150            2

 

 1.1 利用case、group by语句统计亚洲、北美洲的人口数量:

select sum(population),       case country            WHEN '中国'     THEN '亚洲'             WHEN '印度'     THEN '亚洲'             WHEN '日本'     THEN '亚洲'             WHEN '美国'     THEN '北美洲'             WHEN '加拿大'  THEN '北美洲'             WHEN '墨西哥'  THEN '北美洲'        else '其他' endfrom Table_A     group by case country           WHEN '中国'     THEN '亚洲'             WHEN '印度'     THEN '亚洲'             WHEN '日本'     THEN '亚洲'             WHEN '美国'     THEN '北美洲'             WHEN '加拿大'  THEN '北美洲'             WHEN '墨西哥'  THEN '北美洲'     ELSE '其他' END;

  统计每个结果如下:

600        其他1100      亚洲250        北美洲

1.2  统计每个国家的男性人口、女性人口。(有点纵表变横表的意思,两行成一行进行显示)

select country,       sum(case when sex = 1 then population else  0 end) "男性人口",       sum(case when sex = 2 then population else  0 end) "女性人口"  from Table_A group by country;

  统计每个结果如下:

英国    40     60德国    100    100印度    100    150加拿大   51     49墨西哥   25     25中国    340    260法国    150    150美国    45     55日本    150    100

 

2. 嵌套case 语句(end 后接表达式end > 60

首先看看表的内容

PRODUCTID   PRODUCTNAME PRODUCTPRICE  QUANTITY CATEGORY DESPERATION  ORIGINPID0001      T恤         25.62         100       衣服    促销产品       北京PID0002      炒锅        35.62         100       厨具     促销产品       北京PID0003      西瓜        45.62         100       水果     促销产品       北京PID0004      鲈鱼        55.62         100       鱼类     商品描述004    北京PID0004      鲫鱼        75.62         100       鱼类     商品描述005    北京PID0004      草鱼        65.62         100       鱼类     商品描述006    北京

 利用嵌套case语句实现如下功能:价格低于40元的产品,打上低价格的标识,价格大于等于40元的产品加上10元之后如果大于60元,则打上高价格的标识。

select productprice,productname,       case         when (case when productprice < 40 then 0 else productprice + 10 end > 60)         then 1          else 0       end as is_high_price  from PRODUCTINFO

 打上标识的结果:

PRODUCTPRICE    PRODUCTNAME    IS_HIGH_PRICE25.62            T恤                035.62            炒锅              045.62            西瓜              055.62            鲈鱼              175.62            鲫鱼              165.62            草鱼              1

 

转载于:https://www.cnblogs.com/lyy-totoro/p/5966360.html

你可能感兴趣的文章
Redis内存模型
查看>>
cisa备考体会
查看>>
timus1004 最小环()Floyd 算法
查看>>
数据结构05之高级排序
查看>>
python 字典实现类似c的switch case
查看>>
面试问题总结
查看>>
ubuntu qq
查看>>
redis 常用命令
查看>>
【转载】C#常用数据库Sqlserver通过SQL语句查询数据库以及表的大小
查看>>
_kbhit() for linux
查看>>
Mayor's posters POJ - 2528
查看>>
决策树--信息增益,信息增益比,Geni指数的理解
查看>>
常用sql备份
查看>>
Solr源码在MyEclipse下的搭建
查看>>
Oracle用户管理的不完全恢复2:基于取消的恢复
查看>>
Oracle 11g 执行计划管理2
查看>>
stm32 nucleo系列开发板的接口
查看>>
02-CSS基础与进阶-day6_2018-09-05-21-42-09
查看>>
JQuery 多选按钮checkbox
查看>>
PHP 语法(5)
查看>>