简单的问题,关于删除重复记录

客家族_Shark曾_小凡仙
博客专家认证
2004-11-22 09:56:42
1 根据成员编码和日期 删除重复的数据,并留下其中最大ID的一条。

ID,成员编码,日期,工资,....。
...全文
227 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ben1000 2004-11-30
  • 打赏
  • 举报
回复
其实,这个很简单,不过楼主要写明条件,会更好些,这样我们也会更好的理解的。
ben1000 2004-11-30
  • 打赏
  • 举报
回复
若成员编号作为条件,则有:
delete table where 成员编号=已知 and ID<>(select max(ID) from table where 成员编号=已知)
good2speed 2004-11-30
  • 打赏
  • 举报
回复
DECLARE @t TABLE(
id_num INT IDENTITY(1,1) UNIQUE CLUSTERED,
i INT
)

INSERT INTO @t(i)
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 2 UNION ALL
SELECT 3

DELETE @t
FROM @t AS t,(SELECT MIN(id_num) AS id_num,i FROM @t GROUP BY i) AS a
WHERE t.id_num <> a.id_num AND t.i = a.i

/**//* DELETE FROM @t WHERE id_num NOT IN (SELECT MIN(id_num) FROM @t GROUP BY i) */

SELECT * FROM @t
yingqing 2004-11-30
  • 打赏
  • 举报
回复
select ID,成员编码,日期,工资 fron table a where id=(select max(id) from table where 成员编码=a.成员编码,日期=a.日期 )

  • 打赏
  • 举报
回复
delete test
from test a
where ID<>
(
select max(id)
from test
where name=a.name and Money =a.Money
)
yanghongjy 2004-11-25
  • 打赏
  • 举报
回复
delete table where id = (select max(id) from table)
jiajian008 2004-11-24
  • 打赏
  • 举报
回复
delete table where (id in (select id from table where 成员编码=a.成员编码,日期=a.日期))
and (id <>(select max(id) from table where 成员编码=a.成员编码,日期=a.日期 )
)
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
select ID,成员编码,日期,工资 fron table a where id=(select max(id) from table where 成员编码=a.成员编码,日期=a.日期 )
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
select ID,成员编码,日期,工资 fron table a where (select max(id) from table where 成员编码=a.成员编码,日期=a.日期 )

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧