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博客 ” ,链接:https://blog.itpub.net/10687260/viewspace-264936/
,如需转载,请注明出处,否则将追究法律责任。