我做了这个MERGE
语句来获取我的两个表中的所有唯一项目编号:
MERGE INTO XXINV.XXINV_ITEM_SNAP_EGS_E5A6 ISE
USING apps.XXRPT_INV_VALUATION_D535_V IVD
ON (IVD.ITEM_NUMBER = ISE.ITEM_NUMBER)
WHEN NOT MATCHED THEN
INSERT (ORGANIZATION_CODE, ITEM_NUMBER)
VALUES (IVD.OWNING_ORG_CODE,IVD.ITEM_NUMBER)
但问题是IVD
表中有重复的项目编号,但ISE
表中没有,所以如何摆脱合并附带的重复项(留1)。 / p>
注意我对sql很新。 我使用Toad for Oracle 10g
答案 0 :(得分:0)
Looks like you can specify a subquery表示Oracle USING
语句中的MERGE
子句,因此您可以执行以下操作:
MERGE INTO XXINV.XXINV_ITEM_SNAP_EGS_E5A6 ISE
USING (select distinct ... from apps.XXRPT_INV_VALUATION_D535_V) IVD
ON (IVD.ITEM_NUMBER = ISE.ITEM_NUMBER)
WHEN NOT MATCHED THEN
INSERT (ORGANIZATION_CODE, ITEM_NUMBER)
VALUES (IVD.OWNING_ORG_CODE,IVD.ITEM_NUMBER)