如何查找数据库中的重复数据

如何查找数据库中的重复数据,第1张

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count (peopleId) >1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people where peopleId in (select   peopleId from people group by   peopleId   having count (peopleId) >1)and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段)

select * from vitae awhere (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having

扩展资料

FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。

在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。

例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

SELECTusername,citytable.cityid

FROMusertable,citytable

WHEREusertable.cityid=citytable.cityid

在FROM子句中可用以下两种格式为表或视图指定别名:

表名 as 别名

表名 别名

参考资料:百度百科 SELECT语句

首先,对你的需求有点模糊,取消c_id的重复行,然后还显示c_id,s_id。上面两个SQL不知道是否满足你的需求,就比如

select distinct c_id,s_id from xskc ,这条语句消除的是c_id和s_id同时一样的记录,所以单就c_id,还是会有重复的情况。

SQL>desc dup

Name Null?Type

----------------------------------------- -------- ----------------------------

ID NUMBER

NAME VARCHAR2(10)

SQL>select * from dup

ID NAME

---------- ----------

1 AAA

2 AAA

1 BBB

3 BBB

SQL>select distinct id,name from dup

ID NAME

---------- ----------

1 AAA

1 BBB

2 AAA

3 BBB

SQL>select distinct id from dup

ID

----------

1

2

3

所以不管怎么样,如果你要显示c_id和s_id的话,c_id基本都可能重复,除非你还有其他的条件限制


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10800635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存