我正在研究一个典型的问题,我需要比较两个具有完全相同模式的表以解决数据差异。
假定数据库为MS SQL或ORACLE。

更精确地说,这就是我想要达到的目标:


我有一些数据的表ORG
我正在创建表ORG的副本作为BACKUP
现在,我要更新表ORG的某些SPECIFIC行中的一些SPECIFIC列。


查找表BACKUP和ORG之间的区别的最简便方法是什么?

我看到很少有使用UNIONS,PIVOT,UNPIVOT等的选项。但是我很困惑,需要一些有关最佳方法的指导。

谢谢,

最佳答案

您可以根据需要使用SET运算符MINUS/INTERSECT,两个表中的行之间的差或匹配。

要获得差异,请使用MINUS:

SELECT <here_goes_your_column_list> FROM org
MINUS
SELECT <here_goes_your_column_list> FROM backup


要获得匹配,请使用INTERSECT:

SELECT <here_goes_your_column_list> FROM org
INTERSECT
SELECT <here_goes_your_column_list> FROM backup


documentation中查看更多详细信息。

10-06 05:44
查看更多