oracle 找出两个表中相同两个列名下的不同值

同一用户下的2个表,表结构不一定相同。 但是有2个列是相同的,值也基本都相同,但是有几个不同,怎么把值不同几行查询出来?

使用minus做减法即可:
查询a表有,b表没有的记录:
select col_a, col_b from table_a
minus
select col_a, col_b from table_b;

再查询b表有,a表没有的记录
select col_a, col_b from table_b
minus
select col_a, col_b from table_a;追问

哥们儿,我不是这样的意思,,
我是要把这个两个列下值不同的那几行显示出来。。看看A表值是多少 B表值是多少。

追答

minus就是这个作用,比如a表中有一条记录 'aa', 11,b表中没有,
select col_a, col_b from table_a
minus
select col_a, col_b from table_b;

得到的就是'aa', 11这条记录。
而反过来使用minus就是获取b中有,a中没有的记录。
难道你不是这个意思吗?

追问

哦是这意思。。
我以为这个语句只是返回A在B中没有的行,而不返回B在A中没有的行。

追答

所以才要写两次语句,a minus b是获取a中比b多的结果,b minus a是获取b中比a多的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-17
select * from a
full join b
on a.lie=b.lie
where a.lie<>blie
第2个回答  2012-10-17
全连接和minus都可以做到
相似回答