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

如何在SQL查询中将timestamp字段置为空值?场景化需求实现

SQL条件控制字段值解决方案

要实现仅当ACTION_TAKEN字段值为CANCELLED时返回时间戳,否则返回空值,直接用SQL的CASE语句就能搞定,几乎所有主流数据库都支持这个语法。

修改后的完整查询代码

DROP TABLE IF EXISTS INVESTIGATIVE_ACTION_TABLE;

CREATE TEMPORARY TABLE INVESTIGATIVE_ACTION_TABLE AS(
    SELECT DISTINCT 
        t1.POLICY_NBR AS POLICY_ID, 
        TRANS_TYP_DESC AS ACTION_TAKEN, 
        -- 仅当ACTION_TAKEN是CANCELLED时返回时间戳,否则为空
        CASE WHEN TRANS_TYP_DESC = 'CANCELLED' THEN CNCL_EFCTV_DT ELSE NULL END AS DATE,
        CNCL_EFCTV_DT AS CANCEL_EFECT_DATE
  
    FROM POLICY_DETAILS AS t1
    INNER JOIN CANC_EFCTV AS t2
        ON t1.POLICY_NBR = t2.POLICY_NBR
    QUALIFY ROW_NUMBER() OVER (PARTITION BY POLICY_ID, ACTION_TAKEN, CANCEL_EFECT_DATE
                               ORDER BY POLICY_ID DESC) = 1
    ORDER BY POLICY_ID DESC
);

关键说明

  • 新增的CASE语句是核心逻辑:判断TRANS_TYP_DESC(即别名ACTION_TAKEN的字段)是否等于'CANCELLED',满足条件就返回CNCL_EFCTV_DT的时间戳,不满足则返回NULL。
  • 已修复原查询中SELECT语句末尾多余的逗号问题,避免语法报错。
  • 如果不需要保留原CANCEL_EFECT_DATE字段,可直接删除对应行,只保留条件生成的DATE字段即可。

内容的提问来源于stack exchange,提问作者Anuar Vargas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:24