CASE WHEN THEN END多条件判断
程序员文章站
2022-06-01 16:47:17
...
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)
“`
下一篇: mysql数据库-基础
推荐阅读
-
sum(case when then)(判断男女生的个数)
-
SQL之case when then else end用法介绍
-
MS SQL的CASE...WHEN...THEN...END语法
-
mssql sqlserver 如何编写case when 多条件呢?
-
SQL中的case when then else end用法
-
SqlServer使用 case when 解决多条件模糊查询问题
-
SQL利用Case When Then多条件判断
-
case when + forEach 实现多条件多值批量更新
-
case when 多个条件 以及case when 权重排序
-
sql学习之CASE WHEN THEN ELSE END的用法