Oracle SQL查詢刪除重覆記錄

2021-08-29 16:52:08 字數 929 閱讀 8486

oracle sql查詢刪除重覆記錄有兩種方式一種是建立乙個臨時表,就不做說明了.

另一種是用oracle的rowid來刪除:

create table student (

name varchar(12), --姓名

*** varchar2(2) --性別

)表已建立.

sql> insert into student values('張三','01');

sql> insert into student values('李四','01');

sql> insert into student values('王五','02');

sql> insert into student select * from student ;

插入4個記錄.

sql> commit;

完全提交.

sql> select rowid,name ,*** from student ;

查詢到6記錄.

查出重覆記錄

select rowid,name ,*** from student

where student.rowid!=(select max(rowid) from student t where student.name =t.name and student.*** =t.*** );

刪除重覆記錄

delete from student where student.rowid!=(select max(rowid) from student t where student.name =t.name and student.*** =t.*** );

刪除3個記錄.

select rowid,name ,*** from student

完成!

oracle sql 刪除重覆記錄

oracle中刪除重覆記錄,有好幾種方法。第一種 把原來表中的資料都轉存到乙個臨時表中,用distinct查詢出要存到臨時表去的資料。create table temp table as select distinct from table 不過這種方法只適用於表中每一列都相同的情況。第二種 利用o...

oracle sql查詢日曆

查詢當前時間所在月份的日曆 select sum d1 星期日,sum d2 星期一,sum d3 星期二,sum d4 星期三,sum d5 星期四,sum d6 星期五,sum d7 星期六 from select decode d,1,l d1,decode d,2,l d2,decode d...

oracleSQL基本查詢

create table dept deptno number primary key,dname nvarchar2 50 log nvarchar2 50 select from dept for update create table enp empno number primary key,...