删除一张表重复记录(ID 是自增唯一,重复记录:其他字段都是一样)
非常经典的一道面试题(可能存在很多数据,要求性能比较高)
测试过程如下
--删除已存在的序列 Drop Sequence Myseq; --创建表 Create Table Test( IdNumber(4) primary key, Name Varchar2(20), SeqNumber(4) ); --创建自增长序列 Create Sequence Myseq Start With 1 /*最小值为1*/ Increment By 1 /*自增1*/ Cache 3 Nocycle; /*不循环*/ /*修改表的列名*/ Alter Table Test Rename Column Grade ToDeptno; --插入数据,id自增长且不同,其余列均相同 Insert Into Test Values(Myseq.nextval,'sd',20); --查看myseq的当前序列值 select myseq.nextval from dual; Select Myseq.Currval From Dual; --查询数据 Select * From Test; --删除重复行 Delete From Test Where Id Not In(Select Min(Id) From Test Group ByName,deptno); --查询数据 Select * From Test;
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212618.html原文链接:https://javaforall.net
