sql查询两张表结构差异、两张结构相同表的数据差异1.⽐较表结构:
(select column_name,table_name
from user_tab_columns
where table_name ='EMP'
sql中union多表合并
minus
select column_name,table_name
from user_tab_columns
where table_name ='DEPT')
union
(select column_name,table_name
from user_tab_columns
where table_name ='DEPT'
minus
select column_name,table_name
from user_tab_columns
where table_name ='EMP');
注意:表结构信息存储在user_tab_columns,规定表的名称全部为⼤写形式
结果:得到了两张表不同结构的列名,以及表名
2.⽐较表数据:
(select*
from EMP
minus
select*from EMP2)
union
(select*
from EMP2
minus
select*from EMP)
注意:前提是表结构⼀样,可以进⾏数据差异查询
得到下列结果:
结果:得到了两张结构相同表的差异数据
但是⽆法区分哪⼀⾏的数据,属于那张表,因此加上⼦查询,利⽤虚拟列名称,进⾏区分·,sql如下所⽰:
select a.*,'EMP'from(select*
from EMP
minus
select*FROM EMP2)  a
union
select b.*,'EMP2'from
(select*
from EMP2
minus
select*FROM EMP) b
得到的查询结果,如下所⽰:
结果:增加了EMP⾏,加以区分;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。