我正在尝试将我的案例结果(desirecountry)与现有列(so.country_name)进行比较,以获得另一个案例结果(Final_Country_Map_Name):
SELECT subs."user email", subs."user join date", subs.location,
iso.country_name as iso_country, iso.country_id as iso_country_id,
users.country, users.event_type,
-- 1.
CASE WHEN subs.location = iso.country_name THEN iso.country_name
ELSE users.country END AS **desirecountry**,
-- 2.
CASE WHEN **desirecountry** = iso.country_name THEN **desirecountry**
--ELSE Null END AS **Final_Country_Map_Name**
FROM subs
LEFT JOIN
iso
ON
subs.location = iso.country_name
LEFT JOIN
users
ON
users.user_id = subs."user email"
当我使用第二个 CASE 条件时,逻辑失败,它没有给出预期的输出,它在“final_country_map_name”列中给了我一个空值,而不是“desirecountry”值=美国。任何小的帮助都会有所帮助,谢谢。例如:列名是:->
location | iso_country | country | desirecountry | final_country_map_name &&& Column o/p are: ->
U.s, null, United States, United States, null,
你的代码看起来更像 postgre,而不是 MySQL
另外为了您的信息,您不应该在列名中使用空格并将所需的输出留给 gui,这样可以节省大量时间
我使用内部
SubSELECT
来收集数据并将第二个CASE
放在外部SELECT
最后我找到了答案: