【问题标题】:Oracle - Compare rows with large number of columnsOracle - 比较具有大量列的行
【发布时间】:2013-03-21 07:24:57
【问题描述】:

我需要比较具有大量列的 2 行。

有点像

ID A Column1 Column2 ..... ID B 列 1 列 2 ..... ID C Column1 Column2 .....

我需要比较大量列,例如对它们进行减法。 我不想从表中减去,我想对所有列进行类似的操作。 任何一个电话都告诉我如何做到这一点,而无需引用名称的每一列。 每列的减法或加法等操作保持不变。

基本上是这样理解的。

CDE01 A 06 C D
PDE02 B 07 C D
PDE03 A 05 C D

因此,如果我与 CDE01 进行比较,其他行的 2 列和 3 列相同。 我有一张表,里面有很多需要匹配的列。 该表将有两种这样的行,我需要根据 where 子句将一组中的每一行与其他子集的每一行进行比较。就像 PDE 和 CDE 在这里是两种不同的行。

【问题讨论】:

  • 需要输出的例子?
  • 如何在不按名称引用列的情况下指定对列的操作?您可以查询数据字典以确定列的名称,但至少可以这么说。
  • “...比较大量列,例如对它们进行减法...”并不能解释您要完成的工作。请编辑您的帖子并提供更多详细信息。
  • 不清楚和理解。请编辑并添加更多详细信息,说明您打算做什么、您的资源是什么、您的表和列名称是什么(不完全是真实名称,但示例足以说明)以及您迄今为止尝试过的内容..
  • 我已经更新了,看看你们能不能得到这个!

标签: database oracle plsql oracle10g


【解决方案1】:

为什么不创建两个视图(或更多根据需要)。每个视图都代表您认为的分组(您将它们称为行的种类)。所以你最终可能会得到一个视图:CDE_data 和 PDE_data。

然后,您必须确定行不同意味着什么。从您提供的数据来看,我根本看不到任何匹配项 - 您需要确定 CDE_data 中的一行如何匹配 PDE_data 行。您可能只匹配第二列(A 和 B)。如果是这样的话,那么在此基础上将cde_dta加入pde_data,然后在这里使用解决方案:

How to compare two tables column by column in oracle

【讨论】:

    【解决方案2】:

    您需要查询元数据以生成比较。我以为我只是回答了这样一个问题......

    【讨论】:

      【解决方案3】:

      要比较表中的大量数据,您可以使用“Oracle GoldenGate Veridata”或大量第三方工具,例如以下任何一种:

      Toadsoft.com/ -- 共享软件

      dkgas.com/oradbdiff.htm

      softtreetech.com/dbtools/

      impacttoys.com/supported_ora_features.htm -- 免费

      【讨论】:

      • 这个广告真的是堆栈溢出吗?你甚至没有试图理解我的问题。
      • @dark-阅读您的问题并尝试自己理解。不可能的! TOAD 具有比较数据功能等...从菜单中选择 Database->Compare 然后选择选项。
      猜你喜欢
      • 2014-04-08
      • 2022-01-09
      • 1970-01-01
      • 2021-07-08
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多