假设我有两个表,A并且B我知道 size(A) = size(B)。我想确认两个表中的数据是在三个给出列相同,假设他们是X,Y和Z(有在表上没有钥匙)。
为此,我会这样做:
SELECT COUNT(*) FROM
(
Select
X, Y, Z
From
A
)
MINUS
(
Select
X, Y, Z
From
B
)
Run Code Online (Sandbox Code Playgroud)
现在,我真的不需要知道count(*)值,只要数据之间存在一个不匹配,即值元组存在于A但不存在于中B,我就知道这些表不相同。有没有办法在 SQL 中说这个?即,只要 MINUS 遇到一个不匹配的值,就从查询中返回一个值来表示?
谢谢!
performance oracle query optimization minus query-performance
我有一个关于我拥有的两个数据库(在 Oracle 10g 中)的问题,我们称它们为 A 和 B。A 有一些信息(在各种表中),我希望 B 从 A 获取一些表的部分副本,并不断检查A 中的更改并在 B 中“同步”它们。
我想问你一些方法、技术或者想法,知道我不能对 A 做任何改变(只是选择,没有触发器)。
我提前感谢您的帮助和耐心(对于可能的编辑)。
附加信息:
感谢您的回答,我不知道它是否相关,但我找到了 MINUS 运算符,尽管我不确定它是否适用于“子表”(选择)。
为什么:
select 1 FROM DUAL
UNION ALL
select 1 FROM DUAL
MINUS
SELECT 2 FROM DUAL
Run Code Online (Sandbox Code Playgroud)
在 Oracle 中只返回单行1而不是 2 行1?
minus ×3
oracle ×3
duplication ×1
optimization ×1
oracle-10g ×1
performance ×1
query ×1
replication ×1