SQL数据分析之流程控制语句【if,case...when详解】

网友投稿 212 2022-12-01

SQL数据分析之流程控制语句【if,case...when详解】

文章目录

​​零、写在前面​​​​一、if单条件判断语句​​​​二、case...when多条件判断​​

​​1、单条件(if...else效果)​​​​2、多条件(if...else if...else效果)​​​​3、常量用法(switch...case效果)​​

​​三、ifnull填充空值​​

零、写在前面

本文所有代码均是在​​SQL ZOO平台​​进行,数据也该平台下的world表,所有代码均已通过测试。

一、if单条件判断语句

1、语法结构:if(判断条件, 成立值, 不成立值)

select if(1=1,'Yes','No');

2、判断亚洲和非洲中国土面积大于200万的国家是否为人口大国(人口大于2亿)

select continent,name,if(population>200000000,'人口大国','小国') 人口规模 from worldwhere continent in ('Asia','Africa') and area>2000000order by

执行结果:

3、查询国土面积大于100万的亚洲国家中的总体经济水平(大于1万亿为高经济体)

select name,gdp,if(gdp>1000000000000,'高经济体','低经济体') as 总体经济from worldwhere continent='Asia' and area>1000000

二、case…when多条件判断

1、单条件(if…else效果)

将上述if修改成case…when:

#判断亚洲和非洲中国土面积大于200万的国家是否为人口大国(人口大于2亿)select continent,name,CASEWHEN population>200000000 THEN '人口大国'ELSE '小国' END AS 人口规模 from worldwhere continent in ('Asia','Africa') and area>2000000order by continent#查询国土面积大于100万的亚洲国家中的总体经济水平(大于1万亿为高经济体)select name,gdp,CASEwhen gdp>1000000000000 then '高经济体'else '低经济体'END as 总体经济from worldwhere continent='Asia' and area>1000000

2、多条件(if…else if…else效果)

从gdp粗略判断国土面积大于50万,人口大于2000万的亚洲和欧洲国家的状态:

select continent,name,population,gdp,CASEWHEN gdp>=3000000000000 THEN '一等大国'WHEN gdp>=2000000000000 and gdp<=3000000000000 THEN '二等大国'WHEN gdp>=200000000000 and gdp<=1000000000000 THEN '三等大国' ELSE '发展中大国'END AS 国家状态 from worldwhere continent in ('Asia','Europe') and area>500000 and population>20000000order by

3、常量用法(switch…case效果)

case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1 when 常量2 then 要显示的值2或语句2 … else 要显示的值n或语句n;

例如:把人口数大于5000万国家的大洲名翻译成对应的中文

select name,population,CASE continentWHEN 'Asia' THEN '亚洲'WHEN 'Afica' THEN '非洲'WHEN 'South America' THEN '南美洲'WHEN 'North America' THEN '北美洲'WHEN 'Europe' THEN '欧洲'ELSE '其他大洲'END AS 所属大洲from worldwhere population>=50000000

三、ifnull填充空值

Ifunull(字段名,“值1”)如果说这列的内容为null,则用’'来填充。如果不是null的话,则显示原有值。

select id, ifnull('score','缺考') as 分数;

若分数为null,则表示该学生缺考。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:最常用的Windows快捷键大全【高手都是如何玩电脑的】(不断更新中……)
下一篇:详解Java中ThreadLocal类型及简单用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~