ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL与ORACLE的重复记录删除

SQL与ORACLE的重复记录删除

原创 Linux操作系统 作者:sakuy 时间:2008-05-11 01:05:17 0 删除 编辑
sqlserver:

create table sales(code varchar(10),num int);
insert into sales values('bu102',5);
insert into sales values('ps508',2);
insert into sales values('pc847',3);

declare @sql varchar(100)
begin
set  @sql='select * from sales';
insert into sales execute(@sql);
end;

select *  FROM sales WHERE code='bu102';

DECLARE @num INT
SELECT @num=COUNT(*) FROM sales WHERE code='bu102'
SELECT @num=@num-1
SET ROWCOUNT @num    --限制客户端缓冲区的记录数(只留一条记录)
DELETE FROM sales WHERE code='bu102'
SET ROWCOUNT 0     --取消限制

SET ROWCOUNT 0 --取消限制 说明 删除某条记录的重复值,如果想清除表的所有重值要使用游标,取得所有的X

oracle:

 DELETE FROM A_TEST A WHERE ROWID!=(SELECT MAX(ROWID) FROM A_TEST B WHERE A.ID=B.ID AND A.NAME=B.NAME)
 说明 当数据量较大时,这种方法将会使用系统大量的资源

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10687260/viewspace-264936/,如需转载,请注明出处,否则将追究法律责任。

上一篇: sql server全文索引
下一篇: SQL与ORACLE异同
请登录后发表评论 登录
全部评论

注册时间:2008-04-20

  • 博文量
    14
  • 访问量
    23630