简单的
功能 案例性
当'1'then '男性'
当'2'then '女'
其他的另一端
——案例
搜索功能
当性别= '1'then '男性'
当性= '2'then '女'
其他的另一端
这两种
方法可以实现相同的功能,简单的案例
函数比较简单,但与案例搜索功能相比,在功能上有一定的局限性,如写判断。
另一个需要注意的问题是,案例函数只返回第一个
条件值,其余的部分将被自动忽略。
例如,下面的SQL部分,您永远不会得到这个结果的第二种
类型 当col_1在(A,B)然后第一类
当col_1在(a)然后第二类
else'other结束
让我们来看看如何使用案例功能。
首先,已知数据按另一种方式分组,并进行分析。
有以下数据:(为了更清楚地看到,我没有使用国家代码,而是使用国家名称作为主键)。
国家(国家)人口(人口)
中国600
美国100
加拿大100
英国200
法国300
日本250
德国200
墨西哥50
印度250
根据该国的人口数据,计算了亚洲和北美洲的人口。
大陆人口
亚洲1100
北美洲250
其他700
你将如何
解决这个问题用大陆代码
创建视图是一种解决方案,但是很难动态地改变统计方式。
如果使用案例功能,SQL代码如下所示:
选择和(人口),
病例的国家
当'中国'然后'亚洲'
当印度,然后是亚洲
日本然后是亚洲
当我们,然后北美国
然后是加拿大,然后是北美国
然后是墨西哥,然后是北美国
其他的另一端
从table_a
逐组国家
当'中国'然后'亚洲'
当印度,然后是亚洲
日本然后是亚洲
当我们,然后北美国
然后是加拿大,然后是北美国
然后是墨西哥,然后是北美国
其他的另一端;
同样,我们也可以用这种方法来确定工资水平,并计算每个级别的人数。
选择
然后'1'salary时500
当工资> 500工资<= 600然后2
当工资> 600工资<= 800那么远
当工资> 800工资<= 1000英尺4英寸
其他salary_class空端,
计数(*)
从table_a
组
然后'1'salary时500
当工资> 500工资<= 600然后2
当工资> 600工资<= 800那么远
当工资> 800工资<= 1000英尺4英寸
其他的空端;
二,SQL语句用于完成不同条件的组。
有以下数据
国家(国家)性别(性别)人口(人口)
中国1340
中国2260
美国145
美国255
加拿大151
加拿大249
英国140
英国260
根据国家和性别团体,结果如下
全国男女
中国340260
美国4555
加拿大5149
英国4060
在普通
情况下,联合也可以用于语句
查询,但这增加了消费(两个选择部分),SQL语句将更长。
下面是一个用案例函数来做这个的例子
选择国家,
(情况和性别= '1'then)
其他人口0年底)-男性人口
(情况和性别= '2'then)
其他人口0年底)-女性人口
从table_a
按国家分组;
这样,我们利用选择完成了二维表的输出形式,
显示了功能强大的功能。
三,
检查用例函数。
在很多情况下,检查用例函数是一个很好的解决方案,可能有很多人根本不使用检查,所以我建议你在看下面的例子后尝试使用sql复选语句。
让我们举个例子。
A
公司,公司有一项规定,女员工必须支付超过1000美元。
check_salary检查约束
(在性别= 2
然后工资为1000分。
然后1个其他0个结束
否则1结束= 1)
如果您使用简单的检查,如下所示
check_salary检查约束
(性别= '2'and工资> 1000)
女职工的条件与男职工一致。