云服务器网:购买云服务器和VPS必上的网站!

记录mssql如何有效消除重复记录

用MSSQL消除重复记录是一个常常要面对的疑问问题。通过有效的手段,能效力高的去除重复记录,会大大提高工作效力,并减少没必要要的时间浪费。
一、删除重复记录中的填充重复记录
MSSQL有一种特殊的方法,就是删除重复记录中的填充重复记录,可以很有效的消除重复记录

用MSSQL消除重复记录是一个常常要面对的疑问问题。通过有效的手段,能效力高的去除重复记录,会大大提高工作效力,并减少没必要要的时间浪费。

一、删除重复记录中的填充重复记录

MSSQL有一种特殊的方法,就是删除重复记录中的填充重复记录,可以很有效的消除重复记录。可使用代码以下:

“`sql

DELETE FROM TEMP

WHERE ROW_NUMBER() OVER(PARTITION BY 字段名 ORDER BY 字段名) >1


1)填充删除重复记录命令,可以指定依照那些字段分组,可以针对具体表中的重复记录进行删除,非常有效。

例如,假定有一个表tbProduct,其中存在重复记录。要消除重复记录,可使用以下语句:

```sql
DELETE FROM TbProduct
WHERE ROW_NUMBER() OVER(PARTITION BY ProductID ORDER BY ProductID) > 1

2)消除重复记录提示,可以选择某个表中的记录,根据某个[字段]进行统计,由于统计结果显示重复,本语句可以有效消除重复记录。

例如,假定有一个表tbProduct,其中存在重复记录。要查找重复记录,可使用以下语句:

“`sql

SELECT ProductName COUNT(*),COUNT(distinct ProductName)

FROM TbProduct

GROUP BY ProductName

HAVING COUNT(*) > 1


二、删除重复记录中的指定重复记录

1)删除重复记录中的指定重复记录,可以通过使用CTE(Common Table Expression)语句,来实现对重复记录的消除。这类方法让你可以定位指定的重复记录,而不影响其它的不重复记录。

需要将SELECT语句和DELETE语句结合起来,和创建一个变量来标记被删除的记录。

例如,假定有一个表tbProduct,其中存在重复记录,要指定删除重复记录,可使用以下语句:

```sql
WITH CTE AS
(SELECT ROW_NUMBER() OVER(PARTITION BY ProductName ORDER BY ProductID) AS RN,ProductID
FROM TbProduct
)
UPDATE CTE
SET RN = RN +10 ;
DELETE FROM CTE
WHERE RN > 11

2)消除重复记录提示,可使用游标遍历表中的每条记录,同时记录下重复的记录,然后将这些记录从表中删除。但这类方法性能低,耗时慢,不推荐使用。

最后,MSSQL消除重复记录有多种方法可供选择,可以根据需要选择最有效的方式来实现。

本文来源:https://www.yuntue.com/post/224801.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注