sqlzoo第二关select world

第二关 select world

2.1 题目及答案
  1. 观察运行一个简单的sql命令结果
SELECT name, continent, population FROM world
  1. 显示具有至少2亿人口的国家
SELECT name FROM world WHERE population>200000000
  1. 找出至少200百万(2亿)的国家名称及人均国内生产总值
select name,gdp/population from  world where population>200000000
  1. 显示“South America”南美洲大陆的国家名字和以百万为单位人口数。将人口population除以一百万(1000000)可得到以百万为单位的人口数。
select name,population/1000000 from world where continent = 'south america'
  1. 显示法国,德国,意大利(France,Germany,Italy)的国家名称和人口。
select name,population from world where name in ('france','germany','italy')
  1. 显示包含单词“United”为名称的国家。
select name from world where name like '%united%'
  1. 成为大国的两种方式:如果它有3百万平方公里以上的面积,或者拥有250百万(2.5亿)以上人口。
    展示大国的名称,人口和面积。
select name,population,area 
	from world 
	where area>3000000 or population>250000000
  1. 美国,印度,和中国(USA,India,China)是人口又大,同时面积又大的国家,排除这些国家。
    显示以人口或面积为大国的国家,但不能同时满足两者。展示国家名称,人口和面积。
select name,population,area 
	from world 
	where area>3000000 xor population>250000000
  1. 除以1000000(6个零)是以百万计。除以1000000000(9个零)是以十亿计。使用ROUND 函数来展示数值到小数点后两位。
    对于南美展示以百万计人口,以十亿计GDP,并保留2位小数。
select name,round(population/1000000,2),round(gdp/1000000000,2) 
	from world 
	where continent = 'south america'
  1. 显示国家有至少一个万亿元国内生产总值(万亿,也就是12个零)的人均国内生产总值。四舍五入这个值到最接近1000。
    显示万亿元国家的人均国内生产总值,四舍五入到最接近$1000。
select name,round(gdp/population/1000)*1000 
	from world 
	where gdp>1000000000000
  • 困难的题目
  1. CASE函数展示第三列的州份,用北美替换加勒比海。
    显示国家名称,并用澳大拉西亚代替大洋洲,国家名称以N开头。
SELECT name, 
	CASE WHEN continent='Oceania' THEN 'Australasia'
         ELSE continent 
         END
FROM world WHERE name LIKE 'N%'
  1. 显示名称和州份,但是用欧亚大陆代替欧洲和亚洲;用美洲代替北美、南美或加勒比的每个国家。显示以A或B开头的国家
select name,
	case when continent in( 'Europe','Asia') then 'Eurasia'
		 when  continent in ('North America','South America','Caribbean' )then 'America'
	     else continent 
	     end
from world where name like 'A%' or name like 'B%'
  1. 将州份归位
    -大洋洲变成澳大利亚
    -欧亚大陆和土耳其的国家变成欧洲/亚洲
    -以“B”开头的加勒比海群岛变成北美,其他加勒比海群岛变成南美
    显示所有国家的名称、原始州份和新州份。
SELECT name,continent
       ,CASE WHEN continent='Oceania' 
             THEN 'Australasia'
             WHEN continent IN ('Eurasia', 'Turkey') 
             THEN 'Europe/Asia' 
             WHEN continent = 'Caribbean'  AND name LIKE 'B%'
             THEN 'North America'
             WHEN continent = 'Caribbean'
             THEN 'South America'
             ELSE continent
        END
FROM world
2.2总结
函数 用法说明
in 用作筛选多个值,每个值均是等于(=)的含义 ,not in 不包含
like 模糊匹配,可以用’%‘和’_'占位符,前者可表白空值或多个任意字符,后者代表一个字符且不代表空字符,以及not like()用法
xor 区别于or,or是指满足一个条件即可,包括同时满足条件的;xor是指只需满足一个条件即可,但不能同时满足
round 四舍五入将值保留指定n位数,n可以为负值,round(数值,保留的位数)
case when then else end 直接判断数据显示代表的含义时使用,Case具有两种格式。分为简单Case函数和Case搜索函数。
发布了33 篇原创文章 · 获赞 1 · 访问量 1437

猜你喜欢

转载自blog.csdn.net/smileKutper/article/details/103755936
今日推荐