我的表是这样的:
表名:info
表结构如下:
id name sex birthday
1 小龙 男 1987-9-7
1 小龙 男 1987-9-7
2 小红 女 1988-10-3
2 小红 女 1988-10-3
3 小猪 男 1990-9-10
3 小猪 男 1990-9-10
其中id为主键,如何删除表中的重复记录呢
表名:info
表结构如下:
id name sex birthday
1 小龙 男 1987-9-7
1 小龙 男 1987-9-7
2 小红 女 1988-10-3
2 小红 女 1988-10-3
3 小猪 男 1990-9-10
3 小猪 男 1990-9-10
其中id为主键,如何删除表中的重复记录呢
解决方案 »
- 大家来帮我找个分页的BUG,找了一上午没找出来....谢谢哟.... 妈妈说标题要长..
- oracle 并发问题??
- 想写一个程序,主要是写一句话“helloworld”到 一个test.txt文件中,我有一个问题,大家帮帮忙
- oracle的PROCEDURE写好后如何测试??
- 如何查看有那些用户和从那个IP地址连接到oracle数据库?
- 这样SQL语句怎么写?
- 安装完ORACLE8.17后,应如何配置,使创建数据库成功?
- 外联结是干什么用的?
- 求助~oracle累加
- 求助为什么这个Sql缺失关键字
- access库与oracle同步的方案
- oralce10g 安装完成后,首次如何登录sql*Plus啊?
delete from info where rowid not in
(select min(rowid) from info group by id, name, ...)
where rowid<>(select max(rowid) from info b
where a.id=b.id);
delete from a
where rowid in (
select rid
from (
select id,name,sex,birthday,rowid rid,row_number() over(partition by id,name,sex,birthday order by rowid) rn
from a) where rn=1)--删除所有的重复行
delete from a
where rowid in (
select rid
from (
select id,name,sex,birthday,rowid rid,count(*) over(partition by id,name,sex,birthday) rn
from a) where rn>1)
where rowid not in
(
select max(rowid) from info group by id
)
)
本来是要给你加分的,缺给加错了
学oracle不要一味追求使用高级指令和函数
当能同样能实现一个功能的时候,代码越简单,执行效率越高,就越实用
尤其对企业而言,这很重要