oracle查询重复数据和删除重复记录示例分享
复制代码 代码如下:
delete TableA from TableA Twhere例:表中有条六条记录。 其中张三和王五 的记录有重复
from User u
delete from vitae a
while @@fetch_status=0
在A表中存在一个字段“name”,
复制代码 代码如下:
select * from vitae aset rowcount 0 方法二
)
group by u.user_name having count(*) > 1)
005 张三 777777
exists(
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
复制代码 代码如下:
end1、对于第一种重复,比较容易解决,使用
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
create table TableA ( id varchar(3),customer varchar(5),PhoneNo varchar(6))
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
一、查询某个字段重复
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
三,查询并删除重复记录的SQL语句
复制代码 代码如下:
复制代码 代码如下:
复制代码 代码如下:
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)fetch cur_rows into @id,@max
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
select 1from表名 where 字段A=T.字段A and 字段B=T.字段B,(....)
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
方法一
复制代码 代码如下:
复制代码 代码如下:
复制代码 代码如下:
insert into TableA select '001','张三','777777'001 张三 777777
3、查找表中多余的重复记录(多个字段)
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
006 王五 555555
and自增列 < T.自增列
就可以得到无重复记录的结果集。
select @max = @max -1
declare @max integer,@id integer
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
查询及删除重复记录的SQL语句
比方说
总结
二,删除表中某几个字段的重复Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1如果还查性别也相同大则如下:
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
(三)
TableAunion all select '004','张三','777777'
id customer PhoneNo
Select Name,Count(*) From A Group By Name Having Count(*) > 1
(二)
union all select '005','张三','777777'
union all select '002','李四','444444'
复制代码 代码如下:
复制代码 代码如下:
select 1fromtablea where customer=T.customer and phoneno=T.phoneno5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
004 张三 777777
002 李四 444444
结果
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
open cur_rows
exists(
select * from people
如何写一个sql语句将TableA变成如下
注:rowid为oracle自带不用该..... set rowcount @max
)
where u.user_name in (select u.user_name
fetch cur_rows into @id,@max
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
select distinct * from tableName
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
select * from vitae a
测试环境
复制代码 代码如下:
andid < tt.idunion all select '003','王五','555555'
复制代码 代码如下:
begin而且不同记录之间的“name”值有可能会相同,
该方法适用于有一个字段为自增性,例如本例中的:id
close cur_rows复制代码 代码如下:
003 王五 555555002 李四 444444
delete from 表名 where 主字段 = @id
相关热词: oracle
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/oracle/1645.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Window下Oracle Database 11g 发行
时间:2020-12-29
-
Oracle如何实现like多个值的
时间:2020-12-29
-
maven添加oracle依赖失败问题
时间:2020-12-29
-
OracleRAC基本概念及入门
时间:2020-12-29
-
Azure File Storage 基本用法
时间:2020-12-26
-
Oracle 权限(grant revoke)
时间:2020-12-26
-
Azure Queue Storage 基本用法
时间:2020-12-26
-
如何对比迁移前后的Orac
时间:2020-12-26
热门文章
-
Azure Queue Storage 基本用法 Azure Storage 之
时间:2020-12-26
-
Oracle存储过程编程详解
时间:2020-12-07
-
win10下oracle 11g安装图文教程
时间:2020-12-25
-
oracle 数据库学习 基本结构介绍
时间:2020-12-13
-
Azure File Storage 基本用法 Azure Storage 之 F
时间:2020-12-26
-
windows使用sqlpus连接oracle 数据库的教程图
时间:2020-12-25
-
Window下Oracle Database 11g 发行版2安装教程
时间:2020-12-29
-
Oracle解锁的方式介绍
时间:2020-12-14
-
linux下oracle设置开机自启动实现方法
时间:2020-12-13
-
Oracle学习记录之使用自定义函数和触发器
时间:2020-12-07
