返回顶部 底部

sqlzoo练习系列(三)——SELECT from World

 【Tips】

  • sqlzoo官网链接:https://sqlzoo.net/wiki/SQL_Tutorial/zh
  • 每个系列开头介绍所用表及其信息
  • 每道题均测试通过,含有题目描述、代码和结果
  • 题目为自己简写,最好在官网查看具体题目
  • 部分测试结果不完整,仅为一部分截图

SELECT from World练习链接:https://sqlzoo.net/wiki/SQLZOO:SELECT_from_WORLD_Tutorial/zh

所用的表world

  • name:国家名称
  • continent:洲
  • area:面积
  • population:人口
  • gdp:国内生产总值

 

1.简单命令

SELECT name, continent, population FROM world

2.WHERE筛选记录

SELECT name FROM world
WHERE population>200000000

3.求人均生产总值

SELECT name,gdp/population
FROM world
WHERE population > 200000000

4.人口数变成百万单位

SELECT name,population/1000000
FROM world
WHERE continent='South America'

5.显示法国、德国、意大利的名字和人口

SELECT name,population
 FROM world
WHERE name IN ('France', 'Germany', 'Italy')

6.显示包含单词‘United’的国家

SELECT name
FROM world
WHERE name LIKE '%United%'

7.显示大国名称、人口和面积

SELECT name,population,area
FROM world
WHERE area>3000000 OR population > 250000000

8.显示以人口或面积为大国的国家,不能同时有两者

SELECT name,population,area
FROM world
WHERE (area>3000000 OR population > 250000000) AND NOT (area>3000000 AND population > 250000000)

9.显示小数结果ROUND(数据,小数位数)

SELECT name,ROUND(population/1000000,2),ROUND(gdp/1000000000,2)
FROM world
WHERE continent='South America'

10.选择大于12个0的gdp的国家,算出人均国内生产总值,并将结果四舍五入到最接近的1000

SELECT name, ROUND(gdp/population/1000)*1000
FROM world
WHERE gdp>1000000000000

11.显示以N开头的国家名字,但是将Oceania替换成Australasia

SELECT name,
CASE WHEN continent = 'Oceania' THEN 'Australasia'
ELSE continent END
FROM world
WHERE name LIKE 'N%'

12.显示以A或B开头的国家名字,大洲,但是将Europe和Asia替换成Eurasia,将在North America或者South America或者Caribbean的国家替换成America

SELECT name,
CASE WHEN continent='Europe' OR continent='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%'

13.展示name,旧的大洲,和新的大洲情况,满足条件:Oceania变成Australasia;在Eurasia和Turkey的国家变成Europe/Asia;以B开头的在Caribbean的岛变成North America,其余的变成South America

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
ORDER BY name

 

posted @ 2020-10-18 15:17  tuzinn  阅读(286)  评论(0编辑  收藏  举报