澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

的使用方法

2019-10-12 作者:数据库网络   |   浏览(52)

Case具备二种格式。轻便Case函数和Case寻觅函数。

--简单Case函数CASE sex
WHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函数CASEWHEN sex = '1'THEN'男'WHEN sex = '2'THEN'女'ELSE'其他'END

那三种格局,能够完毕平等的功用。不难Case函数的写法相对相比精简,可是和Case寻觅函数比较,功用方面会稍稍限制,比方写剖断式。 
还可能有二个内需潜心的难题,Case函数只回去第4个切合条件的值,剩下的Case部分将会被自动忽视。 

--比如说,下面这段SQL,你永远无法得到“第二类”这个结果CASEWHEN col_1 IN ( 'a', 'b') THEN'第一类'WHEN col_1 IN ('a')       THEN'第二类'ELSE'其他'END

上边我们来看一下,使用Case函数都能做些什么事情。 

的使用方法。一,已知多少依照别的一种方法举行分组,深入分析。 

有如下数据:(为了看得更掌握,小编并不曾行使国家代码,而是一向用国家名作为Primary Key) 

国家(country) 人口(population)
中国 600
美国 100
加拿大 100
英国 200
法国 300
日本 250
德国 200
墨西哥 50
印度 250

的使用方法。依据这几个国亲朋亲密的朋友口数量,总括欧洲和澳洲的人口数量。应该猎取上边这几个结果。 

人口
亚洲 1100
北美洲 250
其他 700

澳门新萄京官方网站,想要化解那一个主题素材,你会咋办?生成多少个带有洲Code的View,是三个解决措施,不过如此很难动态的更改总结的措施。 
固然采用Case函数,SQL代码如下:

SELECT  SUM(population),
CASE country
WHEN'中国'THEN'亚洲'WHEN'印度'THEN'亚洲'WHEN'日本'THEN'亚洲'WHEN'美国'THEN'北美洲'WHEN'加拿大'THEN'北美洲'WHEN'墨西哥'THEN'北美洲'ELSE'其他'ENDFROM    Table_A
GROUPBYCASE country
WHEN'中国'THEN'亚洲'WHEN'印度'THEN'亚洲'WHEN'日本'THEN'亚洲'WHEN'美国'THEN'北美洲'WHEN'加拿大'THEN'北美洲'WHEN'墨西哥'THEN'北美洲'ELSE'其他'END;

同一的,大家也能够用那些法子来判定薪资的级差,并总计每一等级的人数。SQL代码如下; 

SELECTCASEWHEN salary <= 500 THEN'1'WHEN salary > 500 AND salary <= 600  THEN'2'WHEN salary > 600 AND salary <= 800  THEN'3'WHEN salary > 800 AND salary <= 1000 THEN'4'ELSENULLEND salary_class,
COUNT(*)
FROM    Table_A
GROUPBYCASEWHEN salary <= 500 THEN'1'WHEN salary > 500 AND salary <= 600  THEN'2'WHEN salary > 600 AND salary <= 800  THEN'3'WHEN salary > 800 AND salary <= 1000 THEN'4'ELSENULLEND;

二,用三个SQL语句完毕差异尺度的分组。 

有如下数据 

国家(country) 性别(sex) 人口(population)
中国 1 340
中国 2 260
美国 1 45
美国 2 55
加拿大 1 51
加拿大 2 49
英国 1 40
英国 2 60

根据国家和性别进行分组,得出结果如下 

国家
中国 340 260
美国 45 55
加拿大 51 49
英国 40 60

经常情况下,用UNION也足以兑现用一条语句进行查询。不过那样扩张消耗(几个Select部分),而且SQL语句会比较长。 
下边是四个是用Case函数来产生这几个意义的例证 

SELECT country,
SUM( CASEWHEN sex = '1'THEN
population ELSE 0 END),  --男性人口
SUM( CASEWHEN sex = '2'THEN
population ELSE 0 END)   --女性人口FROM  Table_A
GROUPBY country;

如此我们利用Select,实现对二维表的出口格局,丰盛体现了Case函数的强大。 

三,在Check中使用Case函数。 

在Check中动用Case函数在数不尽场地下都以特别科学的消除情势。也可能有那几人根本就不要Check,那么自身提议你在看过下边的例证之后也尝尝一下在SQL中利用Check。 
上面大家来举个例证 
厂家A,那么些店肆有个规定,女人士的劳务费必须超过一千块。如若用Check和Case来展现来讲,如下所示

CONSTRAINT check_salary CHECK
( CASEWHEN sex = '2'THENCASEWHEN salary > 1000
THEN 1 ELSE 0 ENDELSE 1 END = 1 )

设若单独运用Check,如下所示 

CONSTRAINT check_salary CHECK
( sex = '2'AND salary > 1000 )

关爱流行国外网址

facebook:http://www.fb-on.com

facebook官网:http://www.facebookzh.com

facebook:http://www.cn-face-book.com

youtube:http://www.youtubezh.com

twitter:http://www.twitterzh.com

 

女人员的口径倒是切合了,男职员就不可能输入了。

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:的使用方法

关键词: