使用DB2中的SubSelect将Select和Update转换为Update

时间:2013-12-23 13:18:37

标签: sql db2

我有一个选择查询,如下所示:

SELECT COL1, COL2, COL3 
FROM 
(
    SELECT A.COL1, B.COL2, A.COL3 
    FROM 
    SCHEMA1.TAB1 A, SCHEMA2.TAB2 B 
    WHERE 
    A.SOMECOL = B.SOMECOL 
) TEMP 
WHERE NOT EXISTS
(
    SELECT 1 FROM SCHEMA3.TAB3 C WHERE C.COL3 = TEMP.COL3
)

现在,在我当前的代码设置中,我首先运行SELECT以获取结果,然后在下一步中,我通过迭代结果集来更新具有以下更新查询的表SCHEMA3.TAB3

UPDATE SCHEMA3.TAB3 SET COL1=?, COL2=? WHERE COL3=? 

三个参数值来自上述SELECT的结果。

但是,现在我想将选择和更新的两个步骤转换为带有子选择的单个更新语句,并完全取消参数设置。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你的问题似乎有些不对劲。

您正在更新TAB3.COL3 = TAB1.COL3的位置,但在原始SELECT中更新您已取消TAB3.COL3 = TAB1.COL3行的值。