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

多条件IF-THEN语句实现双日期优先级判定技术求助

多分支日期选择逻辑实现方案

根据你给出的规则,用SQL的CASE语句可直接实现需求,以下是对应逻辑的代码:

SELECT
  CASE
    -- 覆盖规则1、2:仅SECONDARY日期存在(或PRIMARY为空、SECONDARY非空),取SECONDARY日期
    WHEN i_sched_dt IS NULL AND h_sched_dt IS NOT NULL THEN h_sched_dt
    -- 对应规则3:仅PRIMARY日期存在,取PRIMARY日期
    WHEN h_sched_dt IS NULL AND i_sched_dt IS NOT NULL THEN i_sched_dt
    -- 对应规则4:两日期均存在时,根据当前日期判断
    WHEN i_sched_dt IS NOT NULL AND h_sched_dt IS NOT NULL THEN
      CASE
        WHEN CURRENT_DATE < h_sched_dt THEN i_sched_dt
        ELSE h_sched_dt
      END
    -- 兜底处理:两个日期都为空时返回NULL(可根据实际需求调整)
    ELSE NULL
  END AS selected_date
FROM your_table;

逻辑对应说明:

  • 第一个WHEN分支合并了规则1和2,因为二者本质都是仅SECONDARY日期有值的场景,直接返回h_sched_dt
  • 第二个WHEN分支对应规则3,仅PRIMARY日期有值时返回i_sched_dt
  • 第三个WHEN分支处理双日期存在的情况,通过嵌套CASE判断当前日期与SECONDARY日期的关系,匹配规则4
  • 最后的ELSE处理双日期均为空的边界场景,返回值可按需修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:12:02