CASE WHEN THEN END多条件判断

CASE WHEN THEN END结构有两种书写方式
结构:

CASE 
            WHEN 条件1 THEN 结果1
            WHEN 条件2 THEN 结果2
            WHEN 条件3 THEN 结果3
            .........
            WHEN 条件N THEN 结果N
        END
    方式:
    第一种格式简单的CASE 函数
CASE SEX 
                WHEN '1' THEN '男'
                WHEN '0'  THEN '女'
                ELSE '其他' END

第二种格式为CASE搜索函数

CASE 
            WHEN SEX ='1'  THEN '男'
            WHEN SEX ='0'  THEN '女'
            ELSE '其他' END
    ```

    注意:
    ------------
    这两种方式,可以实现相同的功能。简单CASE函数的书写方法相对比较简介,但是和CASE搜索函数相比,功能方面会有些限制,CASE函数只返回一个符合条件的值,剩下的CASE部分将会被忽略。


CASE的作用还可以做哪些事情
---------------
有如下数据
国家(county) 人口(population)
中国              600
美国               100
加拿大            100
英国                200
法国                 300
日本                 250
德国                 200
墨西哥              50
印度                  250

根据这个国家人口数据,统计亚洲和北美洲的人口数量
亚洲   1100
北美洲  250
其他      700


现在看看CASE WHEN THEN是如何操作的

SELECT 
SUM(POPULATION),
CASE COUNTRY
WHEN 中国  THEN ‘亚洲’
WHEN 美国 THEN ‘北美洲 ’
WHEN 加拿大 THEN ‘北美洲 ’
WHEN 日本 THEN ‘亚洲’
WHEN 墨西哥 THEN ‘北美洲 ’
WHEN 印度 THEN ‘亚洲’
ELSE ‘其他’ END

 FROM TABLE_A GROUP BY CASE COUNTRY
WHEN 中国  THEN ‘亚洲’
WHEN 美国 THEN ‘北美洲 ’
WHEN 加拿大 THEN ‘北美洲 ’
WHEN 日本 THEN ‘亚洲’
WHEN 墨西哥 THEN ‘北美洲 ’
WHEN 印度 THEN ‘亚洲’
ELSE ‘其他’ END



在CHECK中使用CASE
-------------


在CHECK中使用CASE函数在很多情况下都是非常不错的解决方法.可能有很多人根本就不用CHECK,那么我建议你在看过下面的列子之后尝试一下SQL中使用CHECK.

如下所示:

CONSTRAINT CHECK_SALARY CHECK
WHEN SEX = ‘0’ THEN CASE WHEN SALARY > 1000 THEN 1
ELSE 0 END ELSE 1 END = 1)
“`

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值