我正在尝试编写一个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>
感谢您的帮助。