【发布时间】:2018-03-01 13:40:01
【问题描述】:
我有一个表,其中包含英文和法文名称的城市名称,只有名称不同,否则它将只有英文名称。 笔记。城市 CityA 和 CityA` 的地理编码相同,因为两者是同一个城市,但编码不同。
表名=城市
列在下面
city,code,language,geocode
例如。
cityA Frc
cityA Frc
cityB Eng
CityC Eng
CityD Eng
CityD` FRC
所以我们可以从上面的例子中看到 CityA 有法语和英语名称,而 CityB 没有,因为 CityB 在法语和英语中都有相同的拼写 /accent。
我要做的是基于用户语言,如果用户语言是法语,则返回所有法语名称加上没有法语口音的英语名称。 所以从上面它应该返回 CityA`,CityB,CityC,CityD'
类似地,如果用户语言是英文,则返回所有英文名称。 城市A,城市B,城市C.城市D。
以下是我尝试过的
select a.city,a.code from country a
where a.language=userenv('lang') -- it will be either french or english
union
select b.city,b.code from country b
where b.language='Eng'
AND not exists( select geocode from country
where geocode = a.geocode)
我收到错误,因为 a.geocode 未识别。
【问题讨论】: