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

SQL Server中基于列名与ID匹配为table1新增关联results列

实现table1与table2的关联更新逻辑

你的问题核心是缺少列名与对应值的匹配条件,以下是修正后的完整SQL语句:

-- 为table1新增results列
ALTER TABLE table1
ADD results text;

-- 关联table2并匹配条件更新results列
UPDATE table1
SET results = table2.result
FROM table1
JOIN table2 
    ON table1.ID = table2.ID
    AND (
        -- 当table1的a列非空时,匹配table2的列名'a'和对应值
        (table1.a IS NOT NULL AND table2.[Column Name] = 'a' AND table2.[Column Value] = table1.a)
        -- 当table1的b列非空时,匹配table2的列名'b'和对应值
        OR (table1.b IS NOT NULL AND table2.[Column Name] = 'b' AND table2.[Column Value] = table1.b)
        -- 当table1的c列非空时,匹配table2的列名'c'和对应值
        OR (table1.c IS NOT NULL AND table2.[Column Name] = 'c' AND table2.[Column Value] = table1.c)
    );

关键逻辑说明:

  • 用OR分支覆盖table1每行唯一非空列的场景,确保仅匹配table2中ID一致、列名对应、值相等的记录
  • 带空格的列名Column Name必须用方括号[]包裹,避免SQL语法错误
  • 由于table1每行仅有一个非空列,三个分支只会触发其中一个,不会出现多匹配冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:32:47