SQLSEVER2012删除相同记录

SQLSEVER20212怎么删除相同的记录,方法简便的有木有?

假设你相同的行记录有一个属性为name,这行相同的都叫张三;
delete * from t_user where name="张三";

如果想保留一行的话,就用distinct,关于distinct的用法你可以百度一下;

如果回答对您有帮助,请采纳。

如果有id可区分

  DELETE FROM table1
   WHERE NOT EXISTS(SELECT *
                      FROM table1 t
                     WHERE t.id < table1.id
                       AND t.col1 = table1.col1
                       AND t.col2 = table1.col2 -- 列出所有用来判断相等的字段
                   )

如果全字段相同

 SELECT DISTINCT *
  INTO #temp
  FROM table1

TRUNCATE TABLE table1

INSERT INTO table1
SELECT *
  FROM #table

DROP TABLE #temp

1、相同记录的判断方式形成key值
2、使用变量做相同记录的分组标记序号
3、取每组的第一条做保留标记
4、删除其他记录

先把查寻出相同记录中唯一一组,将其插入临时表,再将表中的相同记录都删除,再将临时表中的数据插入到表中