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

SQL Server 2019多条件新增Business、Plant列及报错解决

原语句语法错误说明

你之前执行报错的语句:

select *,Business case when code in ('A231', B343') and Rep='Alex' then Business='Steel' else Null End as Business

存在3处语法问题:

  • SELECT * 后冗余书写了Business,导致CASE表达式的语法结构被破坏,这是提示「关键字'case'附近有语法错误」的直接原因
  • IN条件列表里的B343'缺失前导单引号,字符串常量必须用成对单引号包裹
  • CASE是逐行计算返回值的表达式,不是赋值语句,THEN后直接写要返回的取值即可,不需要写Business='Steel'这类赋值格式。
正确SQL实现

将语句中的替换为你的实际表名替换为你当前操作的数据表真实名称即可,语法完全兼容SQL Server 2019:

SELECT
    *,
    CASE
        WHEN Code IN ('A231','B343') AND Rep = 'Alex' AND Area = 'Del' THEN 'Steel'
        WHEN Code IN ('A231','B343') AND Rep = 'Alen' AND Area = 'Mum' THEN 'Iron'
        ELSE NULL
    END AS Business,
    CASE
        WHEN (Code IN ('A231','B343') AND Rep = 'Alex' AND Area = 'Del')
          OR (Code IN ('A231','B343') AND Rep = 'Alen' AND Area = 'Mum') THEN 'EXR'
        ELSE NULL
    END AS Plant
FROM 替换为你的实际表名;

执行后会返回原表的Code、Rep、Area三个字段,同时新增匹配规则填充的Business、Plant字段,和预期输出结果一致。如果后续需要新增更多匹配规则,在两个CASE语句里追加WHEN分支即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:15:29