【问题标题】:delete duplicate records leaving 1删除重复记录留下 1
【发布时间】:2012-07-21 22:38:53
【问题描述】:

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

注意我对 sql 很陌生。 我正在使用 Toad for Oracle 10g

【问题讨论】:

  • 什么数据库系统,哪个版本? SQL 只是 结构化查询语言 - 许多数据库系统使用的语言,但不是数据库产品...这样的功能通常是特定于供应商的 - 所以我们真的需要知道您使用的是什么数据库系统....

标签: sql merge duplicates


【解决方案1】:

Looks like you can specify a subquery 用于 Oracle MERGE 语句中的 USING 子句,因此您可以执行以下操作:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-20
    • 2013-08-06
    • 2015-09-27
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多