Sql 在DB2中将Select和Update转换为Update with SubSelect
我有一个选择查询,如下所示:Sql 在DB2中将Select和Update转换为Update with SubSelect,sql,db2,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.COL
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=?
其中三个参数值来自上述结果选择
但是,现在我想将这两个选择和更新步骤转换为一个带有子选择的update语句,并完全取消参数设置
我该怎么做呢?你的问题似乎有点不对劲
您正在更新其中的TAB3.COL3=TAB1.COL3
,但在原始的中,选择以获取您已删除的行中的值,其中TAB3.COL3=TAB1.COL3
此处没有计算某些内容。您正在从TAB1中选择COL3在TAB3中不存在的行;您计划如何更新TAB3中不存在的行?