oracle中如何查询数据表中重复的数据?

 我来答
督枚敢n
2013-08-24 · 超过79用户采纳过TA的回答
知道答主
回答量:162
采纳率:100%
帮助的人:74.3万
展开全部
其实可以用很简单SQL语句将其查询出来。如果想查询数据表中某一个字段重复(这里假设这个字段名是ID1),可以使用以下SQL语句。 select Table1.* from Table1 right join ( select ID1 From Table1 Group by ID1 having Count(ID1) > 1 ) T on Table1.id1 = T.id1 如果想查询数据表某两个字段重复,则可以使用如下语句查询。 select Table1.* from Table1 right join ( select ID1, ID2 From Table1 Group by ID1, ID2 having Count(ID1) > 1 and Count(ID2) > 1 ) T 注:上面代码中出现的ID1和ID2字段均不是数据表主键。
大话残剑
2018-03-01 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:716万
展开全部

可以用分组函数统计,例如在表test中查询id字段重复的数据,查询结果中id是重复的数据值,count(*)是重复的次数。

create table test(id number,name varchar2(20));  
insert into test values(1,'a');  
insert into test values(1,'b');  
insert into test values(1,'c');  
insert into test values(2,'d');  
insert into test values(2,'e');  
commit;
SELECT ID,COUNT(*) FROM TEST GROUP BY ID;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友58a6adf
2018-02-28 · TA获得超过2430个赞
知道小有建树答主
回答量:3575
采纳率:0%
帮助的人:371万
展开全部
使用in或者exists
但是相对来说,使用in的速度慢,可以尝试使用exist(如果数据多,会更明显的感觉到,数据极少,几乎没差别)
1。使用in
SELECT service, name, note
FROM table01
WHERE service NOT IN (SELECT service FROM table02)
2。使用exists
select service, name, note
from table01
where not exists (select service from table02)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式