《2022年探究SQL中Case语句用法收集》由会员分享,可在线阅读,更多相关《2022年探究SQL中Case语句用法收集(4页珍藏版)》请在金锄头文库上搜索。
1、探究 SQL 中 Case语句用法摘要: 在 SQL 中,Case具有两种格式。即简单Case函数和 Case搜索函数。标签: SQL Case在 SQL 中, Case具有两种格式。即简单Case函数和 Case搜索函数。下文中笔者与大家一起讨论SQL 中 Case语句用法。-简单 Case函数1.CASE sex 2.WHEN 1THEN 男3.WHEN 2THEN 女4.ELSE 其他 END-Case搜索函数1.CASE WHEN sex = 1THEN 男2.WHEN sex = 2THEN 女3.ELSE 其他 END这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简
2、洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。-比如说,下面这段SQL,你永远无法得到“ 第二类 ” 这个结果1.CASE WHEN col_1 IN ( a, b) THEN 第一类 2.WHEN col_1 IN ( a) THEN 第二类 3.ELSE 其他 END下面我们来看一下,使用Case函数都能做些什么事情。一,已知数据按照另外一种方式进行分组,分析。有如下数据 :(为了看得更清楚, 我并没有使用国家代码,而是直接用国家名作为Primary Key) 国家( cou
3、ntry) 人口( population)中国600 美国100 加拿大100 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 英国200 法国300 日本250 德国200 墨西哥50 印度250 根据这个国家人口数据,统计亚洲和北美洲的人口数量。应该得到下面这个结果。洲人口亚洲1100 北美洲250 其他700 想要解决这个问题,你会怎么做?生成一个带有洲Code 的 View ,是一个解决方法,但是这样很难动态的改变统计的
4、方式。如果使用 Case函数, SQL 代码如下 : 1.SELECTSUM (population), 2.CASE country 3.WHEN 中国 THEN 亚洲 4.WHEN 印度 THEN 亚洲 5.WHEN 日本 THEN 亚洲 6.WHEN 美国 THEN 北美洲 7.WHEN 加拿大 THEN 北美洲 8.WHEN 墨西哥 THEN 北美洲 9.ELSE 其他 END10.FROM Table_A 11.GROUP BY CASE country 12.WHEN 中国 THEN 亚洲 13.WHEN 印度 THEN 亚洲 14.WHEN 日本 THEN 亚洲 15.WHEN
5、美国 THEN 北美洲 16.WHEN 加拿大 THEN 北美洲 17.WHEN 墨西哥 THEN 北美洲 18.ELSE 其他 END;同样的,我们也可以用这个方法来判断工资的等级,并统计每一等级的人数。SQL 代码如下;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 1.SELECT2.CASE WHEN salary 500 AND salary 600 AND salary 800 AND salary = 1000 T
6、HEN 46.ELSE NULLEND salary_class, 7.COUNT (*) 8.FROM Table_A 9.GROUP BY10.CASE WHEN salary 500 AND salary 600 AND salary 800 AND salary 1000 4.THEN 1 ELSE 0 END5.ELSE 1 END = 1 ) 如果单纯使用Check,如下所示1.CONSTRAINT check_salary CHECK2. ( sex = 2AND salary 1000 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -