Использование оператора Case на mysql объединенных полях для возврата значения поля - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь написать запрос MySQL, который изменяет значение возвращаемого поля на основе значений, возвращаемых из присоединенного запроса. В настоящее время я использую оператор case для получения поля. Он запускается и возвращает некоторое значение для одного из полей, но никогда не возвращает значение ELSE. Я получаю только одно поле или другое.

В настоящее время я получаю значение для analytics.t1apps.c_s_tagsource, но никогда не вижу значение для analytics.t1sizmek. medium. Я даже пытался установить для ELSE значение «Ничего», и это, похоже, не проходит.

Мой SQL-запрос выглядит следующим образом:

SELECT analytics.t1apps.id,....,analytics.t1apps.c_s_tagsource,
....`,analytics.t1sizmek.`medium`, 
CASE
WHEN (analytics.t1apps.c_s_tagsource IS NOT NULL) OR analytics.t1apps.c_s_tagsource<>'' THEN analytics.t1apps.c_s_tagsource
ELSE analytics.t1sizmek.`medium`
END AS sourceoftruth
 FROM analytics.t1apps,analytics.t1sizmek 
WHERE analytics.t1apps.candidateid=analytics.t1sizmek.candidateid AND analytics.t1apps.reqnum=analytics.t1sizmek.reqid;

У меня такое ощущение, что это не работает, потому что это производное табличное значение, но неспособность установить статическое значение в остальном поставило меня в тупик.

Я ожидаю, чтобы значение возвращаемого поля для 'sourceoftruth' было значением в analytics.t1apps.c_s_tagsource, если это не пустое значение, в противном случае возвращает значение analytics.t1sizmek. medium.

Спасибо за вашу помощь.

...