使用DB2但猜测这通常适用于SQL。
我有两张桌子; Table1包含Fix列在多行中可以相同的数据。如果找到Table1中的Fix列和Table2中的Title列之间的一个或多个匹配项,则Table2具有唯一的行并且具有我想要添加到第一个表中的列的数据。
我遇到一个问题,即SQL返回错误说:“对于MERGE语句的更新,删除或插入操作,多次识别目标表”xxxxxxx“的同一行。”< / p>
现在这是预期的,即我知道目标表中有多个符合条件的行,需要将源表中的数据应用于它们。
我正在使用MERGE,但这是不可能的?一直在看GROUP BY,但无法让它工作。
如果我用另一种语言执行此操作,我将浏览源表,从源代码构建匹配记录的集合,然后使用需要添加的源数据迭代更新集合。认为SQL中有一种更有效的方法吗?
此代码完全错误(并返回上面的错误),但在此处添加它以帮助任何想要伸出援手的好人: - )
CREATE PROCEDURE Update_RawData_With_xKey_Data ()
P1: BEGIN
MERGE INTO table1 AS T
USING table2 AS S
ON (T.FIX = S.TITLE)
WHEN MATCHED THEN
UPDATE SET
T.Rating = S.Rating,
T.GSDS = S.GSDS_Date,
ELSE IGNORE ;
END P1