Oracle 根据主键去重(最高效)

该博客介绍了如何使用SQL语句创建一个名为project的表,然后向其中插入学生张三和李四的课程及成绩数据。接着展示了查询重复数据的方法,并给出了删除这些重复数据的SQL命令。最后,显示了执行删除操作后的表内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- 建表语句
create table project
(
    ID     NUMBER,
    NAME   VARCHAR2(20),
    COURSE VARCHAR2(20),
    SCORE  NUMBER
);

INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (1, '张三', '语文', 90);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (2, '张三', '数学', 80);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (3, '张三', '英语', 70);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (4, '张三', '历史', 60);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (5, '张三', '生物', 58);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (7, '李四', '语文', 96);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (8, '李四', '数学', 93);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (9, '李四', '英语', 85);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (10, '李四', '历史', 43);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (12, '李四', '物理', 69);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (1, '张三', '语文', 90);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (2, '张三', '数学', 80);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (5, '张三', '生物', 58);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (12, '李四', '物理', 69);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
 

-- 查询重复数据
select ID, NAME, COURSE, SCORE from project a
where a.rowid>(select min(b.rowid) from project b where b.ID=a.ID);

 -- 删除重复数据
delete from project a
where a.rowid>(select min(b.rowid) from project b where b.ID=a.ID);

-- 查看
select * from project;
 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值