gpt4 book ai didi

sql - 更新和插入 SQL

转载 作者:行者123 更新时间:2023-12-05 01:36:31 26 4
gpt4 key购买 nike

我如何修改下面的 TSQL 更新语句以插入源表的 partid 不在目标表中项目 ID ='500224' 的 partid 字段中。如果不存在,我需要插入。

USE [DBNAME];
GO
UPDATE m
SET [partId] = a.[partId]
select * FROM
[SourceTable] m
INNER JOIN
[DestTable] a
ON m.[bomItem] = a.[ItemId]
AND m.bomEntry = a.bomEntry AND m.bomRev = a.rev WHERE
m.bomRev=a.rev AND m.partId <> a.partid AND m.lineNbr = a.bomEntry ;
Go

在源表中

enter image description here

在目标表中

enter image description here

例如,在上面的图片中,partid 100280 不存在于目标表中,我想添加它并保持所有其他相同。

最佳答案

您可以使用带有 NULL 检查的 LEFT JOIN 将缺失的 partid 插入到目标表中。

INSERT INTO [DestTable] (bomItem, bomRev, bomEnty, lineNbr, dType, partId, revId, qty)
SELECT ST.ItemID, ST.rev, ST.bomEnty, ST.lineNbr, 0 AS dType, ST.partid, NULL AS revId, ST.qty
FROM [SourceTable] ST
LEFT JOIN [DestTable] DT ON DT.bomItem = ST.ItemID AND DT.partid = ST.partid
AND DT.bomRev = ST.Rev AND DT.bomEntry = ST.bomEntry -- remove these conditions if not need
WHERE DT.partid IS NULL

由于两个表之间很少有列不匹配,我在 SELECT

中添加了正确的列名

关于sql - 更新和插入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com