J'ai une table qui contient le nom de ville en anglais et en français seulement si le nom est différent sinon il aura seulement le nom anglais. REMARQUE. Le géocodage sera le même pour la ville CityA et CityA` puisque les deux sont la même ville mais le code sera différent.UNION et NOT EXISTS throws Erreur
Table name = Ville
Les colonnes sont ci-dessous
city,code,language,geocode
Par exemple.
cityA Frc
cityA Frc
cityB Eng
CityC Eng
CityD Eng
CityD` FRC
Ainsi, nous pouvons voir ci-dessus par exemple que CITYA a à la fois FRANÇAIS et le nom anglais alors que CityB ne pas parce que CityB a la même orthographe/accent en français et en anglais. Ce que je veux faire est basé sur la langue de l'utilisateur, si la langue de l'utilisateur est le français, puis retourner tous les noms français et anglais qui n'ont pas d'accent français. donc de ci-dessus il devrait retourner CityA`, CityB, CityC, CityD '
De même si la langue de l'utilisateur est l'anglais, retournez tous les noms anglais. VilleA, CityB, VilleC.CityD.
Voici ce que j'ai essayé
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)
Je reçois erreur a.geocode pas identifié.
Votre première requête ne peut pas fonctionner car les NOT EXISTS excluent toutes les lignes. C'est la même table donc il y a toujours une ligne avec ce Géocode, la ligne _current_. –