--如果有索引先删除索引 --如果有触发器先禁用触发器--设置恢复模型为最小日志模式 alter database 数据库名 set recovery simple go--删除重复记录 delete from 表 t where exists(select 1 from 表 where ID=t.ID and value=t.value and [day]<t.[day])--更新day序列 update t set [day]=0.10+0.01*(select count(1) from 表 where ID=t.ID and value<=t.value) from 表 t--还原数据库恢复模型 alter database 数据库名 set recovery full go
你是要求 id value day 1 20 0.11 2 40 0.11 1 30 0.12 2 60 0.12 2 50 0.14 这样的结果吗??
--try it select id,value,min(day) day into # from tablename group by id,value order by id,day truncate table tablename insert into #
--如果有触发器先禁用触发器--设置恢复模型为最小日志模式
alter database 数据库名 set recovery simple
go--删除重复记录
delete from 表 t
where exists(select 1
from 表
where ID=t.ID
and value=t.value
and [day]<t.[day])--更新day序列
update t
set [day]=0.10+0.01*(select count(1) from 表 where ID=t.ID and value<=t.value)
from 表 t--还原数据库恢复模型
alter database 数据库名 set recovery full
go
id value day
1 20 0.11
2 40 0.11
1 30 0.12
2 60 0.12
2 50 0.14
这样的结果吗??
select id,value,min(day) day into # from tablename group by id,value order by id,day
truncate table tablename
insert into #
补充一下,这个表的记录有很多条(万条以上),
ID相同的记录有几百条而且ID从1到99都有---这样用语句效率不高!
建议用实际表(临时)来剔除重复的,然后再update day这个字段