网站建设资讯

NEWS

网站建设资讯

oracle如何去重复列,oracle如何找出重复的列名

oracle中表所有列值重复了一次,怎么查找重复的列 并且排除?

1、过滤重复行 select distinct 字段 from 表明

站在用户的角度思考问题,与客户深入沟通,找到蛟河网站设计与蛟河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖蛟河地区。

2、查找重复行 select 字段 ,count(*) from group by 字段 having count(*)1

oracle怎样查出表中重复列的数据?

1、查出表中重复列的数据:

select a,count(*) from table group by a having count(*)1

2、查重复次数最多的列:

select a,num from (

select a,count(*)  num from table group by a having count(*)1

)

order by num desc

此外,还有

1、查询一个表中所有字段都相同的记录

比如现在有一人员表   (表名:peosons)

若想将姓名、编号、住址这三个字段完全相同的记录查询出来:

select  p1.*  from  persons  p1,persons  p2  where  p1.name=p2.name  and  p1.id =  p2.id  and  p1.address=p2.address                  group by p1.name,p1.id,p1.address  having count(*) 1;

或者:

select  p1.*  from  persons  p1,persons  p2  where  p1.name=p2.name

and  p1.id=p2.id  and  p1.address=p2.address  and  p1.rowidp2.rowid;

或者:(下面这条语句执行效率更高)

select  *  from (select  p.*,row_number()  over  (partition  by  name,

id,address  order  by  name)  rn  from  persons  p)  where  rn1;

2、 查询一个表中某字段相同的记录

语法:select  p1.*  from  表名 p1,(select  字段  from  表名 group  by  字段  having  count(*)1)  p2  where  p1.字段=p2.字段;

select  p1.*  from  persons  p1,(select  address  from  persons  group  by  address  having  count(*)1)  p2

where  p1.address=p2.address;

3、查询一个表中某字段相同的记录,其它字段不用查询出来

select  name,count(*)  from  persons group  by  name  having  count(*) 1;

oracle 重复列如何去除

用 distinct 属性,在select之后加distinct

例:

select distinct *

from table;

select distinct name,age

from table

where 条件;

oracle如何消除重复列

select col1,col2,count(*)

from tab_1

group by col1,col2

having count(*) 1;

查出来重复数据了

然后

delete tab_1 a where rowid in (

select max(rowid) from tab_1 b

where a.col1=b.col1

and a.col2=b.col2

);

OK,搞定!

记住了,删除之前一定要先备份,在查询是不是要删除的数据,然后再删除。


网页题目:oracle如何去重复列,oracle如何找出重复的列名
转载来于:http://cdweb.net/article/heccip.html