SQL中如何对比两个表中类似或者重复的数据?

有两个表,A表中可能会包含B表中的某些数据(都是文字),我现在想让两个表对比,看看B表有没有在A表中类似活着重复的,但是两个表的文字量都很大,我不能用LIKE'文字'的方式;来限定查找,只能让两个表直接对比全部文字查找相同或者包含的,如何写呢?谢谢!

以前回答过类似问题

原理 A,B是2个集合
(A - B) U (B - A) = null 那么2个集合相同
!= null 2个集合不同

SQL 实现
(select * from A
minus
select * from B)
union all
(select * from B
minus
select * from A)
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-17
在这里我给你做个实例,你就明白了
create table test(
id number(4) primary key not null,
name varchar(6),
age number(5,2) check(age between 0 and 150)
);
insert into test(id,name,age) values(1,'回钦波',25);
insert into test(id,name,age) values(2,'回钦波',25);
insert into test(id,name,age) values(3,'在测试',20);
delete from test where name in(select name from test where name in(select name from test group by name having count(name)>1)) and id =(select max(id) from test group by name having count(name)>1);

select * from test;

更多交流、更多了解:QQ:444084929 [回钦波] 个人主页:http://www.yezhong.net

SQL中如何对比两个表中类似或者重复的数据?
原理 A,B是2个集合 (A - B)U (B - A)= null 那么2个集合相同 != null 2个集合不同 SQL 实现 (select from A minus select from B)union all (select from B minus select from A)

两个表格如何匹配出相同的数据
一、使用数据库查询匹配 当两个表格存储在数据库中时,可以使用SQL查询语句来匹配相同的数据。通过WHERE子句和JOIN操作,可以轻松地将两个表中的匹配数据提取出来。例如,如果两个表中有共同的字段,如ID或名称,可以使用这些字段作为匹配条件。详细解释:1. 理解数据结构:首先,需要明确两个表格中的数据...

sql查询按两个字段查询重复记录
select from shiyan003 a where exists (select 1 from (select xm, sfzhm from shiyan003 group by xm, sfzhm having count(*) > 1) s where s.xm = a.xm and s.sfzhm = a.sfzhm)

如何用sql比较两张表数据是否一致?
首先,尝试最直接的方法——使用INNER JOIN。当两张表(如t1和t2)的字段完全匹配时,通过INNER JOIN检查它们的关联,如:`SELECT * FROM t1 INNER JOIN t2 ON t1.ID = t2.ID AND t1.NAME = t2.NAME`。如果JOIN后的结果数量等于t1和t2表的总行数,那么数据一致。然而,这在数据存在重复时可...

如何用sql语句查询两张表中的相同字段数据
假设表1位table1 ,表2位table2 select a.col from (select column_name col from user_tab_columns where table_name = 'table1') a ,(select column_name col from user_tab_columns where table_name = 'table2') b where a.col = b.col 这样就可以查询出两个表得相同字段了 ...

用SQL查询两个表中相同的数据
select 'test_col_2' tbl_name, count(*) from test_col_2 t 4、表1有部分比表2多的数据,select * from test_col_1 minus select * from test_col_2;5、插入表1多的数据,如表2,执行sql,可以发现有多条记录插入。insert into test_col_2 select * from test_col_1 minus select ...

sql查询两个表相同的数据
1、首先得出两个表的并集 注:full join :存在匹配,匹配显示;同时,将各个表中不匹配的数据与空数据行匹配进行显示。可以看成是左外连接与右外连接的并集。图中结果左侧两列为TABLE1,右侧两列为TABLE2。前三条记录表示TABLE1和TABLE2都有的数据。TABLE1项为NULL的记录说明TABLE2中无相同项。同理...

如何用SQL语句查询两张表中的相同字段数据
select tableA.column1,tableA.column2 from tableA ,ableB where tableA .column1=tableB .column1 或者使用 union 方法,注意两个表选出来的字段至少要格式相同 select column1,column2,column3 from tableA union select column1,column2,column3 from tableB ...

如何查询sql表中2个字段分别相同的记录
如有以下2张表:查询2张表id和name字段内容完全相同的内容,可用如下语句:1 select a.* from test a,test1 b where a.id=b.id and a.name=b.name;结果:说明,两表连接where条件要写上关联条件,因为提问是两个字段完全相等,所以就写作:a.id=b.id and a.name=b.name ...

如何用SQL语句查询两张表中的相同字段数据
查询两张表中的数据可以采取连接和联合的方法来合并、组合来自不同表里的数据 ,其中连接又可以有内连接、外连接和自然连接等多种形式,连接条件可以根据需要任易设置,亦可以对等连接也可以非对等连接,还可以组合使用逻辑运算符设置连接条件。具体的SQL语句必须捉供表结构和输出要求才能给出,语句形式的...

相似回答