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

如何使用SQL UPDATE实现同表同列不同行的字段值按条件复制

同表字段值复制SQL实现方案

原SQL存在的问题

  • 字段拼写错误:多处将TYPE字段误写为TPYE
  • 语法错误:内层MISC子查询的SELECT字段列表缺少逗号分隔,无法正常执行
  • 别名冲突:外层UPDATE表别名和子查询内表别名重复,会引发逻辑匹配错误
  • 关联条件不符合需求:原SQL用ID字段关联,与你提出的「通过NUMBER和TYPE关联」的需求不符

修正后的SQL(适配SQL Server 语法)

你要的逻辑是:匹配TYPE='MISC'和TYPE='PDF'且NUMBER字段值相同的行,将MISC行的description值覆盖到PDF行的同名字段,修正后语句如下:

UPDATE 
    t_pdf
SET 
    t_pdf.description = t_misc.description
FROM 
    [DB1] t_pdf
INNER JOIN 
    [DB1] t_misc
    ON t_pdf.NUMBER = t_misc.NUMBER
    AND t_misc.TYPE = 'MISC'
WHERE 
    t_pdf.TYPE = 'PDF'

注意事项

执行更新前建议先执行SELECT语句验证匹配结果是否正确,避免误改数据:

SELECT 
    t_pdf.NUMBER,
    t_pdf.description AS 原值,
    t_misc.description AS 要覆盖的值
FROM 
    [DB1] t_pdf
INNER JOIN 
    [DB1] t_misc
    ON t_pdf.NUMBER = t_misc.NUMBER
    AND t_misc.TYPE = 'MISC'
WHERE 
    t_pdf.TYPE = 'PDF'

如果数据量较大,可分批执行更新避免锁表。

内容的提问来源于stack exchange,提问作者the-jay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:36:04