我需要从“世界”表中拉出并添加CASE WHEN语句以使其非洲大陆名称'Caribbean'在国家'名称'为'B'时变为'北美' ',但是当名称不是'B%'时,那么大陆将会='南美洲'。还需要按ASC顺序进行命名。具有多种条件和排序的案例陈述
我知道所有的命令来做到这一点,但似乎无法让他们在正确的顺序或语法。下面是问题和屏幕截图。
我需要从“世界”表中拉出并添加CASE WHEN语句以使其非洲大陆名称'Caribbean'在国家'名称'为'B'时变为'北美' ',但是当名称不是'B%'时,那么大陆将会='南美洲'。还需要按ASC顺序进行命名。具有多种条件和排序的案例陈述
我知道所有的命令来做到这一点,但似乎无法让他们在正确的顺序或语法。下面是问题和屏幕截图。
你只需要打破你的问题。请记住CASE
将按顺序检查个案...因此,如果第一个个案的评估结果为TRUE
,则不会为该行检查以下测试。
你越来越挂在多个条件的case语句。具体而言,对于您询问的部分(北美和南美),您需要检查两个条件。
因此,按照他们要求的顺序进行。
when continent = 'Oceania' then 'Australasia'
when continent = 'Eurasia' or continent = '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'
现在把它放在一起......
select
name,
continent,
case
when continent = 'Oceania' then 'Australasia'
when continent = 'Eurasia' or continent = '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 as NewContinent
from
world
order by
name asc
感谢一堆!对不起,没有更好地格式化问题,我将在未来。但非常感谢您的帮助! –
不用担心@MitchCorreia我知道这是你第一次。不要忘记接受正确的答案,并提供有用的答案。 – scsimon
告诉我们一些你已经尝试使我们能更好地了解您所需要的解释。也不要让社区为此工作,将示例数据放在您的问题中,并且使您的条件更易于理解,而不仅仅是简单地放在段落列表中? – Matt
使用案件陈述的早期逃避方法(一旦条件满足,它会退出案例)......'当大陆='加勒比'并且名称像'B%'那么'北美'当continent ='加勒比'然后'南美'' – xQbert