xml地图|网站地图|网站标签 [设为首页] [加入收藏]
当前位置: www8029com > 澳门新葡8522最新网站 > 正文

的使用方法

时间:2019-11-11 21:26来源:澳门新葡8522最新网站
Case具有三种格式。轻易Case函数和Case搜索函数。 --简单Case函数CASE sexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函数CASEWHEN sex = '1'THEN'男'WHEN sex = '2'THEN'女'ELSE'其他'END 那二种方法,能

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函数只回去第二个适合条件的值,剩下的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

澳门新葡8522最新网站,坚决守护国家和性别举行分组,得出结果如下 

国家
中国 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,那一个公司有个规定,女人士的工薪必需大于1000块。即便用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

 

女职员的尺度倒是相符了,男人士就不可能输入了。

编辑:澳门新葡8522最新网站 本文来源:的使用方法

关键词: www8029com