sql sqlzoo case

1 如何使用WHERE來篩選記錄。 顯示具有至少2億人口的國家名稱。 2億是200000000,有八個零。

SELECT name FROM world
WHERE population>200000000

2 找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。

求助:如何人均國內生產總值計算

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

3 顯示’South America’南美洲大陸的國家名字和以百萬為單位人口數。 將人口population 除以一百萬(1000000)得可得到以百萬為單位人口數。

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

4 顯示法國,德國,意大利(France, Germany, Italy)的國家名稱和人口。

SELECT name, population FROM world
WHERE name in ("France", "Germany", "Italy")

5 顯示包含單詞“United”為名稱的國家。

select name from world where name like "%United%"

6 成為大國的兩種方式:如果它有3百萬平方公里以上的面積,或擁有250百萬(2.5億)以上人口。

展示大國的名稱,人口和面積。

select name,population ,area from world where population > 250000000 or area > 3000000

7 美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。

顯示以人口或面積為大國的國家,但不能同時兩者。顯示國家名稱,人口和面積。

select name,population ,area from world where (population > 250000000 and area < 3000000)or (area > 3000000 and population < 250000000)

8 除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。

對於南美顯示以百萬計人口,以十億計2位小數GDP。
百萬和十億

select name,round(population/1000000, 2),round(gdp/1000000000, 2) from world where continent = "South America"

9 顯示國家有至少一個萬億元國內生產總值(萬億,也就是12個零)的人均國內生產總值。四捨五入這個值到最接近1000。

顯示萬億元國家的人均國內生產總值,四捨五入到最近的$ 1000。

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

case

case 就是可以判断该字段的数据值是否符合条件,如果符合条件,则将数据值替换成一个新的值展示

SELECT name,
       CASE WHEN continent='Caribbean' THEN 'North America'
            ELSE continent END
  FROM world

case 判断continent 数据是否是 Caribbean 如果是,则将这个数据替换为 North America, 如果不符合条件,则 不做修改, else

1 The CASE statement shown is used to substitute North America for Caribbean in the third column.
Show the name - but substitute Australasia for Oceania - for countries beginning with N.
(所示的案例声明用于在第三列中代替北美去加勒比。展示“大洋洲”的名称,但以N开始。)

SELECT name,
       CASE WHEN continent='Caribbean' THEN 'North America'
            ELSE continent END
  FROM world
 WHERE name LIKE 'N%'

2 Show the name and the continent - but substitute Eurasia for Europe and Asia; substitute America - for each country in North America or South America or Caribbean. Show countries beginning with A or B
(显示名称和大陆——但用欧亚大陆代替欧亚大陆;代替美国——代替北美、南美或加勒比地区的每个国家。显示以A或B开头的国家)

SELECT name
       ,CASE WHEN continent='Asia' 
             THEN 'Eurasia'
             WHEN continent='Europe' 
             THEN 'Eurasia'
             WHEN continent = 'North America' 
             THEN 'America'
             WHEN continent = 'South America' 
             THEN 'America'
             WHEN continent = 'Caribbean' 
             THEN 'America'
             ELSE continent
        END
FROM world
WHERE name LIKE 'A%' OR name LIKE 'B%'

3 Put the continents right…
Oceania becomes Australasia
Countries in Eurasia and Turkey go to Europe/Asia
Caribbean islands starting with ‘B’ go to North America, other Caribbean islands go to South America
Show the name, the original continent and the new continent of all countries.
(把大陆摆正……
大洋洲是澳大拉西亚
欧亚大陆和土耳其的国家去欧洲/亚洲
以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
ORDER BY name;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值