比如现在有一人员表 (表名:peosons)
若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来
select p1.*
from persons p1,persons p2
where p1.id<>p2.id
and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address
可以实现上述效果。
几个删除重复记录的 SQL 语句
1.用 rowid 方法
2.用 group by 方法
3.用 dis$nct 方法
1。用 rowid 方法
据据 oracle 带的 rowid 属性,进行判断,是否存在重复,语句如下:
查数据:
select * from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2……)
删数据:
delete from table1 a where rowid !=(select max(rowid)
from table1 b where a.name1=b.name1 and a.name2=b.name2……)
2.group by 方法
查数据:
select count(num), max(name) from student --列出重复的记录数,并列出他的 name 属
性