首页 > 解决方案 > SQL 上 2 个数据集之间的数据协调

问题描述

图像表

我目前需要使用 SQL Oracle 查找 new_master 数据集和以前的数据集之间的所有差异。数据集具有相同的结构,由整数和字符串组成,并且没有唯一的键 id,除非我一起选择几列。您可以在开头看到一个图像作为 image_table。我在网上找到了这段代码,我想问你是否有任何建议。

SELECT n.*
FROM new_master as n
LEFT JOIN old_master as o
ON (n.postcode = o.postcode)
WHERE o.postcode IS NULL
SORT BY postcode

这样做时,我应该从 new_master 取回不在旧条目中的所有条目。

谢谢

标签: sqloracledatabase-reconciliationreconcile

解决方案


如果您在 Oracle 数据库中,有几个查询可以帮助您找到任何差异。

在 OLD 中查找不在 NEW 中的任何记录。

SELECT * FROM old_master
MINUS
SELECT * FROM new_master;

在 NEW 中查找不在 OLD 中的任何记录。

SELECT * FROM new_master
MINUS
SELECT * FROM old_master;

计算 OLD 中的项目数

SELECT COUNT (*) FROM old_master;

计算 NEW 中的项目数

SELECT COUNT (*) FROM new_master;

如果存在具有相同列数据的重复行,则除了COUNT查询之外还需要查询。MINUS


推荐阅读