oracle查询出来的数据如何消除重复数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查询出来的数据如何消除重复数据相关的知识,希望对你有一定的参考价值。
参考技术Aoracle查询出来的数据消除重复数据的具体步骤如下:
1、首先我们查看表中重复的数据。
2、然后我饿美女使用distinct去除函数查询出去掉重复后的数据。
3、然后我们创建新表把去掉重复的数据插入到新表中。
4、最后使用truncate清空原表中的数据。
5、再向原表中插入新表中重复的数据,即可达到去重复数据的效果。
oracle如何查询重复数据然后全部显示,举例:一份Excel中有100条数据,只有10条不同,我一个个
查询的话需要替换10次,但如何全部查询出来按照位置就可以全部覆盖替换了,但是怎么查才行,有朋友提示字段拼接方式,但查不到相关方法,都是去重的,可我正相反。
在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同。使用rowid,SQL语句如下
:
按照位置覆盖是什么意思?
我简单做了点数据,你看一下
create table test (id int,name varchar(10))insert into test values (1,'张三')
insert into test values (1,'张三')
insert into test values (1,'张三')
insert into test values (2,'李四')
insert into test values (2,'李四')
insert into test values (2,'李四')
insert into test values (3,'王五')
insert into test values (3,'王五')
insert into test values (3,'王五')
就是每一个都有三条重复的,然后执行
select a.* from test a,(select id,name,dense_rank() over (order by id) rn from test group by id,name) b
where a.id=b.id and a.name=b.name and b.rn=1
你每次只需要替换b.rn=1后边那个1就行了
参考技术B 用高级筛选的“选择不重复记录”就可以把100条中的10选出来了。追问我觉得我的提问够明确了吧,你是在说反话呢
追答抱歉,没有看清就回答了。如果用手工做个样子,来个截图就好明白了。
以上是关于oracle查询出来的数据如何消除重复数据的主要内容,如果未能解决你的问题,请参考以下文章
用于使用序列消除重复条目的 Oracle PLSQL 更新查询