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

如何编写SQL查询,按CID条件排除col3计算字段总和?

根据CID条件动态计算总和列的SQL写法

直接使用CASE语句在SELECT子句中实现条件计算,不会过滤任何目标CID的数据,完整语句如下:

SELECT 
    col1,
    col2,
    col3,
    CASE
        WHEN CID IN (44444, 55555) THEN col1 + col2
        ELSE col1 + col2 + col3
    END AS total
FROM 
    table
WHERE 
    CID IN (11111, 22222, 33333, 44444, 55555);

关键说明:

  • CASE是SQL实现分支逻辑的常用方式,这里根据CID取值分别定义total列的计算规则
  • WHERE子句保留你原有的筛选逻辑,确保只获取指定CID的数据,不会误过滤44444、55555的记录
  • 如果col1/col2/col3可能存在NULL值,建议用COALESCE函数处理空值,避免总和结果为NULL,示例:
    CASE
        WHEN CID IN (44444, 55555) THEN COALESCE(col1, 0) + COALESCE(col2, 0)
        ELSE COALESCE(col1, 0) + COALESCE(col2, 0) + COALESCE(col3, 0)
    END AS total
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:51:19