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

如何在更新前从临时表#ABCD中找出致原表重复的值

找出更新后会导致原表出现重复值的临时表记录

问题场景

原表Original和临时表#ABCD的数据如下:
原表Original:

ID  Value
1   a
2   b
3   c
4   d

临时表#ABCD:

ID  Value
1   b
2   a
3   d

当按ID匹配用临时表更新原表时,临时表中ID=3的记录会将原表ID=3的Value改为d,而原表ID=4的Value已经是d,这会导致更新后原表出现重复值。我们需要在执行更新前,从临时表中找出这类会引发重复的记录。

解决方案SQL

SELECT 
    abcd.ID, 
    abcd.Value
FROM #ABCD abcd
INNER JOIN Original o 
    ON abcd.Value = o.Value 
    AND abcd.ID != o.ID;

逻辑说明

  • 通过INNER JOIN关联临时表和原表,匹配条件为临时表的Value与原表的Value相同,同时临时表的ID与原表的ID不同。
  • 这个条件筛选出的临时表记录,其Value在原表的其他行已经存在,执行更新后必然会造成原表Value字段的重复。

查询结果

ID Value
3  d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:00:47