You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL使用CASE提取两列日期生成新列结果全为NULL如何解决

问题原因
  • 在SQL语法中,NULL代表未知值,无法使用常规的比较运算符(=、!=、<等)和NULL做等值判断,任何值与NULL做这类比较的返回结果都是UNKNOWN,不会被CASE语句判定为满足条件
  • 你编写的CASE语句没有补充ELSE分支,当Date_X非空的场景下,没有匹配的条件分支,CASE会默认返回NULL
    两类问题叠加就导致所有行的DATE_X_FINAL结果都是NULL。
解决方法

方法1:修正CASE语句的写法

调整NULL判断逻辑,同时补充ELSE分支,代码如下:

SELECT [Date_X], [Date_X2], 
       CASE 
       WHEN [Date_X] IS NULL THEN [Date_X2]
       ELSE [Date_X]
       END as DATE_X_FINAL
    FROM [DATABASE.TABLE] 

方法2:使用更简便的COALESCE函数

COALESCE函数的作用是返回参数列表中第一个非NULL的值,刚好匹配你的需求,代码更简洁,且兼容所有主流SQL数据库:

SELECT [Date_X], [Date_X2], 
       COALESCE([Date_X], [Date_X2]) as DATE_X_FINAL
    FROM [DATABASE.TABLE] 

内容的提问来源于stack exchange,提问作者Martín Cabrera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:06:02