在MySQL联接字段上使用Case语句以返回字段值

时间:2019-07-02 22:35:53

标签: mysql join case

我正在尝试编写一个MySQL查询,该查询根据联接查询返回的值来更改返回字段的值。我当前正在使用case语句来派生该字段。它运行,并为其中一个字段返回一些值,但从不返回ELSE值。我只得到一个领域。

我目前正在收到analytics.t1apps.c_s_tagsource的值,但从没有看到analytics.t1sizmek。medium的值。我什至尝试将ELSE设置为“ Nothing”,但似乎并没有通过。

我的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;

我感觉它不起作用,因为它是派生表值,但是无法在else中设置静态值使我感到很困惑。

我希望将'sourceoftruth'的返回字段的值作为analytics.t1apps.c_s_tagsource中的值(如果不为空),否则返回analytics.t1sizmek。medium的值。 / p>

感谢您的帮助。

0 个答案:

没有答案