[英]Compare columns in 2 Oracle 11g tables
我在 Oracle 11g 中有 2 个表,其中一个包含实际源数据和另一个掩码数据。
该表大约有 1260000 行。
我要比较的列是 Varchar。
我正在尝试检查所有数据是否已被屏蔽为与原始数据不同的值。
我正在执行 select 查询,在连接 1 上有 2 个条件。具有唯一行标识符 2。我要比较的值。
查询在执行时永远不会返回。
有没有办法获得 output ,我可以在其中看到两个表中值相同的行?
我就是这样理解这个问题的。
例如,我创建了 Scott 的EMP
表和“屏蔽”名称的“副本”:
SQL> create table emp2 as select * From emp;
Table created.
SQL> update emp2 set ename = translate(ename, 'AEIOU', '98765');
14 rows updated.
SQL> select empno, ename from emp2 order by empno;
EMPNO ENAME
---------- ----------
7369 SM7TH
7499 9LL8N
7521 W9RD
7566 J6N8S
7654 M9RT7N
7698 BL9K8
7782 CL9RK
7788 SC6TT
7839 K7NG
7844 T5RN8R
7876 9D9MS
7900 J9M8S
7902 F6RD
7934 M7LL8R
14 rows selected.
要检查哪些名称不同:
SQL> select a.empno, a.ename, b.ename
2 from emp a join emp2 b on a.empno = b.empno
3 where a.ename <> b.ename
4 order by a.empno;
EMPNO ENAME ENAME
---------- ---------- ----------
7369 SMITH SM7TH
7499 ALLEN 9LL8N
7521 WARD W9RD
7566 JONES J6N8S
7654 MARTIN M9RT7N
7698 BLAKE BL9K8
7782 CLARK CL9RK
7788 SCOTT SC6TT
7839 KING K7NG
7844 TURNER T5RN8R
7876 ADAMS 9D9MS
7900 JAMES J9M8S
7902 FORD F6RD
7934 MILLER M7LL8R
14 rows selected.
SQL>
或者,在您的情况下,由于您希望查看未更改的值,您可以将第 3 行修改为
where a.ename = b.ename
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.