sys*_*ich 5 sql case case-when sql-like
该问题的语句是:
把大陆说得对...
- 大洋洲成为澳大拉西亚
- 欧亚大陆和土耳其的国家去欧洲/亚洲
- 以'B'开头的加勒比群岛前往北美洲,其他加勒比岛屿则前往南美洲
显示所有国家的名称,原始大陆和新大陆.
我的解决方案
SELECT name, continent,
CASE WHEN continent='Oceania' THEN 'Australasia'
WHEN continent IN ('Europe', 'Asia') THEN 'Europe/Asia'
WHEN name='Turkey' THEN 'Europe/Asia'
WHEN continent='Caribbean' AND name LIKE 'B%' THEN 'North America'
WHEN continent='Caribbean' AND name NOT LIKE 'B%' THEN 'South America'
ELSE continent END
FROM world
Run Code Online (Sandbox Code Playgroud)
我从sqlzoo得到的结果是"错误答案.有些数据不正确."
mar*_*kus 10
这适合我.不要问我为什么必须使用ORDER BY(没有它就没有用).
SELECT name, continent,
CASE WHEN continent='Oceania' THEN 'Australasia'
WHEN continent = 'Eurasia' THEN 'Europe/Asia'
WHEN name='Turkey' THEN 'Europe/Asia'
WHEN continent='Caribbean' AND name LIKE 'B%' THEN 'North America'
WHEN continent='Caribbean' AND name NOT LIKE 'B%' THEN 'South America'
ELSE continent END
FROM world ORDER BY name
Run Code Online (Sandbox Code Playgroud)