我尝试返回基于不同值的2个日期列的结果,如下所示:
CASE WHEN game_startA IS NOT NULL THEN game_startA
WHEN game_startB IS NOT NULL THEN game_startB
ELSE ''
END AS 'Game Start Date'
,
CASE WHEN game_endA IS NOT NULL THEN game_endA
WHEN game_endB IS NOT NULL THEN game_endB
WHEN COALESCE(game_endC, game_endD) IS NOT NULL THEN COALESCE(game_endC, game_endD)
ELSE ''
END AS 'Game End Date'
问题是,如果值为NULL,则返回1900-01-01
,而不是NULL或空白。
有什么办法可以解决这个问题吗?
1条答案
按热度按时间rhfm7lfc1#
这个逻辑可以大大简化(除非比你分享的内容更多):
我不认为有必要使用
CASE
表达式 * 或 * anyELSE
来将日期转换为空字符串,如果COALESCE()
到达其列表末尾,仍然没有找到非NULL
值,则输出就是您想要的:NULL
.