删除重复记录1

时间:2012-07-23 16:46:39

标签: sql merge duplicates

我做了这个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

1 个答案:

答案 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)