本篇文章是对Oracle查询和删除JOB的SQL的实现方法进行了详细的分析介绍
需要的朋友参考下
查询及删除重复记录的SQL语句
查找表中多余的重复记录重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > )
删除表中多余的重复记录重复记录是根据单个字段(peopleId)来判断只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > )
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>)
注:rowid为oracle自带不用该
查找表中多余的重复记录(多个字段)
select * from vitae a
where (apeopleIdaseq) in (select peopleIdseq from vitae group by peopleIdseq having count(*) > )
删除表中多余的重复记录(多个字段)只留有rowid最小的记录
delete from vitae a
where (apeopleIdaseq) in (select peopleIdseq from vitae group by peopleIdseq having count(*) > )
and rowid not in (select min(rowid) from vitae group by peopleIdseq having count(*)>)
查找表中多余的重复记录(多个字段)不包含rowid最小的记录
select * from vitae a
where (apeopleIdaseq) in (select peopleIdseq from vitae group by peopleIdseq having count(*) > )
and rowid not in (select min(rowid) from vitae group by peopleIdseq having count(*)>)
(二)
比方说
在A表中存在一个字段“name”
而且不同记录之间的“name”值有可能会相同
现在就是需要查询出在该表中的各记录之间“name”值存在重复的项
Select NameCount(*) from A Group By Name Having Count(*) >
如果还查性别也相同大则如下:
Select NamesexCount(*) from A Group By Namesex Having Count(*) >
(三)
方法一
declare @max integer@id integer
declare cur_rows cursor local for select 主字段count(*) from 表名 group by 主字段 having count(*) >
open cur_rows
fetch cur_rows into @id@max
while @@fetch