delete
from
t_number;
以下表为例:
create
table
t_number(
ID
NUMBER
not
null
,
USERNAME
VARCHAR2
(
30
),
MOBILE
VARCHAR2
(
30
),
OPRCODE
VARCHAR2
(
2
),
INSDATE DATE
)
一、记录中部分字段重复:
delete from t_number a
where a.rowid != (select max(b.rowid)
from t_number b
where a.mobile = b.mobile); 在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新最旧的一条记录, 我们就可以利用这个字段,保留重复数据中rowid最大或最小的一条记录就可以了
二、记录中各字段内容完全相同的情况
先创建临时表:
CREATE TABLE t_number_tmp AS (select distinct * from t_number); 清除原表
delete from t_number; 将临时表的数据导入原表
insert into t_number (select * from t_number_tmp); 删除临时表
drop tablet_number_tmp;
posted on 2006-12-04 16:01
一凡 阅读(332)
评论(0) 编辑 收藏 所属分类:
DATABASE