mssql中同一张表中如何删除相同的纪录???

exchanger 2003-12-10 09:23:44
由于需要对表建一个关键字,需要删除重复的记录,请教改怎么办?
解决问题马上给分
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghosthjt 2003-12-10
  • 打赏
  • 举报
回复
如果二条记录完全相同,是没有办法只删掉其中一条的,要不是两条者删除,要不是都不删除。但只要有一个字段有不同的值(其它字段值都相同)假设为diff 则删除为:
delete from 表名 where diff not in (select min(diff) from 表名 group by 除diff以外的所有字段)
伍子V5 2003-12-10
  • 打赏
  • 举报
回复
try:
delete from tablename a where id in (select id from tablename where id<>a.id)
loveflea 2003-12-10
  • 打赏
  • 举报
回复
1、所有字缎都一样的;完全相同的记录。

CREATE TABLE tmp SELECT DISTINCT * FROM haha;
DROP TABLE haha;
ALTER TABLE tmp RENAME TO haha;

2、将一个字段比如 id 作为重复记录判断

CREATE TABLE tmp SELECT * FROM haha group by id;
DROP TABLE haha;
ALTER TABLE tmp RENAME TO haha;
loveflea 2003-12-10
  • 打赏
  • 举报
回复
1、所有字缎都一样的
CREATE TABLE tmp SELECT * FROM haha WHERE 1 = 0;
INSERT INTO tmp SELECT DISTINCT * FROM haha;
DROP TABLE haha;
ALTER TABLE tmp RENAME TO haha;

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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