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

如何合并含CASE语句的SQL查询?需兼容Case_Type_ID=1和2的记录

合并两个SQL查询的解决方案

你可以通过整合CASE语句并调整WHERE条件,把两个查询合并成一个,同时保留两类Case_Type_ID的所有记录,具体实现如下:

整合后的SQL代码

SELECT
    -- 替换为你实际需要查询的字段(对应原查询中的XXXX/XXX)
    target_columns,
    CASE 
        WHEN crr.case_Type_Id = 1 THEN
            CASE WHEN question3.option_id = 3 THEN 'Symptomatic' 
                 WHEN question3.option_id = 4 THEN 'Asymptomatic' 
                 ELSE NULL END
        WHEN crr.case_Type_Id = 2 THEN
            CASE WHEN question3.option_id = 17 THEN 'Symptomatic' 
                 WHEN question3.option_id = 18 THEN 'Asymptomatic' 
                 ELSE NULL END
        ELSE NULL
    END AS SYMPTOM_STATUS
-- 保留两个查询共用的JOIN逻辑
FROM your_join_clauses_here
WHERE crr.case_Type_Id IN (1, 2)
GROUP BY 
    target_columns,
    CASE 
        WHEN crr.case_Type_Id = 1 THEN
            CASE WHEN question3.option_id = 3 THEN 'Symptomatic' 
                 WHEN question3.option_id = 4 THEN 'Asymptomatic' 
                 ELSE NULL END
        WHEN crr.case_Type_Id = 2 THEN
            CASE WHEN question3.option_id = 17 THEN 'Symptomatic' 
                 WHEN question3.option_id = 18 THEN 'Asymptomatic' 
                 ELSE NULL END
        ELSE NULL
    END
ORDER BY crr.QUARANTINE_END_DATE DESC

关键改动说明

  • WHERE条件:用IN(1,2)替代原查询的单独条件,一次性筛选出两类Case_Type的记录
  • SYMPTOM_STATUS字段:外层CASE判断case_Type_Id,内层根据不同类型匹配对应的option_id映射规则,统一输出症状状态
  • GROUP BY子句:和SELECT中的CASE逻辑完全一致,确保分组依据与查询字段匹配,避免语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:54:38