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

求助:如何通过多条件CASE语句生成Desire_Final_Contradiction字段

看起来你在尝试基于DataEntry和Contradiction字段的值计算Final_Contradiction,但你的SQL脚本存在几个语法问题导致无法正常运行。我来帮你修正并实现需求:

修正后的SQL解决方案

1. 正确生成Final_Contradiction的查询语句

首先解决核心的字段计算问题,你的原脚本存在表名格式和CASE表达式语法的问题,修正后如下:

SELECT 
    ID,
    CASE 
        WHEN (
            (B.[DataEntry] IN (1, 2) AND B.[Contradiction] = 1) 
            OR 
            (B.[DataEntry] IN (2, 3) AND B.[Contradiction] = 1)
        ) THEN 1 
        ELSE 0 
    END AS Final_Contradiction
FROM [Test Sample_Dataset] B; -- 带空格的表名必须用方括号包裹

2. 简化逻辑(可选优化)

注意到你的条件可以合并:DataEntry IN (1,2)和DataEntry IN (2,3)的并集其实是DataEntry IN (1,2,3),所以如果业务规则允许,完全可以简化成更简洁的写法:

SELECT 
    ID,
    CASE 
        WHEN B.[DataEntry] IN (1, 2, 3) AND B.[Contradiction] = 1 THEN 1 
        ELSE 0 
    END AS Final_Contradiction
FROM [Test Sample_Dataset] B;

3. 如果需要创建新表存储结果

如果你的目标是把结果存入新表,推荐两种方式:

方式1:自动创建表并插入数据(SELECT INTO)

SELECT 
    ID,
    CASE 
        WHEN (
            (B.[DataEntry] IN (1, 2) AND B.[Contradiction] = 1) 
            OR 
            (B.[DataEntry] IN (2, 3) AND B.[Contradiction] = 1)
        ) THEN 1 
        ELSE 0 
    END AS Final_Contradiction
INTO [Sample_Final_Contradiction] -- 新表名称
FROM [Test Sample_Dataset] B;

方式2:先建表再插入数据(更灵活控制表结构)

-- 先定义表结构(根据实际字段类型调整)
CREATE TABLE [Sample_Final_Contradiction] (
    ID INT,
    Final_Contradiction BIT -- 用BIT类型存储0/1更节省空间
);

-- 插入计算后的数据
INSERT INTO [Sample_Final_Contradiction] (ID, Final_Contradiction)
SELECT 
    ID,
    CASE 
        WHEN (
            (B.[DataEntry] IN (1, 2) AND B.[Contradiction] = 1) 
            OR 
            (B.[DataEntry] IN (2, 3) AND B.[Contradiction] = 1)
        ) THEN 1 
        ELSE 0 
    END
FROM [Test Sample_Dataset] B;
关键问题说明
  • 带空格的表名:原表名Test Sample_Dataset包含空格,必须用方括号[]包裹,否则SQL会将其识别为两个独立对象,引发语法错误。
  • CASE表达式语法:原脚本中'Final_Contradiction' = CASE ...的写法不符合SQL标准,正确的别名写法是CASE ... END AS Final_Contradiction。
  • 逻辑冗余:合并重复的条件判断能让脚本更易读和维护,当然如果业务规则有特殊限制(比如DataEntry=2需要额外校验),可以保留原逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:27:21