Sql server 2008 删除SQL Server 2008中的重复行
我知道这个问题被问了很多次,但每次我在自己的数据库中尝试一个答案时,重复的行就会被删除。从下面的数据表中删除第2行和第3行的最佳查询是什么 以下是图片的链接图片没有足够的信誉点: 谢谢 您可以使用带有行号的CTE: 这将删除除一行之外的所有重复行 如果要删除所有可以使用的内容,请执行以下操作:Sql server 2008 删除SQL Server 2008中的重复行,sql-server-2008,duplicates,Sql Server 2008,Duplicates,我知道这个问题被问了很多次,但每次我在自己的数据库中尝试一个答案时,重复的行就会被删除。从下面的数据表中删除第2行和第3行的最佳查询是什么 以下是图片的链接图片没有足够的信誉点: 谢谢 您可以使用带有行号的CTE: 这将删除除一行之外的所有重复行 如果要删除所有可以使用的内容,请执行以下操作: 你尝试过的方法有什么问题,你能至少说明一个吗?我不知道把表名等放在哪里。我在这里执行了qeury,但它不能与CTE一起工作,如SELECT t.*,RN=tsk_TaskName、tsk_Task、tsk
你尝试过的方法有什么问题,你能至少说明一个吗?我不知道把表名等放在哪里。我在这里执行了qeury,但它不能与CTE一起工作,如SELECT t.*,RN=tsk_TaskName、tsk_Task、tsk_AddDate、tsk_DueDate、tsk_Destination、tsk_History、tsk_Finished分区上的行数,tsk_通过dbo中的tsk_TaskName完成历史顺序。tsk_Tasks无法从CTE中删除,其中RN>1I出现以下错误:Msg 208,级别16,状态1,第2行无效对象名称“dbo.tsk_Tasks”。。。而重复的行是不正确的deleted@thijs1095:如果dbo.tsk_任务无效,则该表不存在。也许您还应该添加数据库,假设它是MyDB:…来自MyDB.dbo.tsk_Tasks t…我的数据库的名称是DEMO,数据表的名称是tsk_Tasks。当我尝试dbo.tsk_任务或仅尝试tsk_任务或demo.tsk_任务时,它将不起作用either@thijs1095:因此,也可以从SSMS中的tsk_任务中选择*不起作用?
WITH CTE AS(
SELECT t.*,
rn = ROW_NUMBER() OVER (PARTITION BY Col1, Col2, Col3, Col4, Col5, ...
ORDER BY Col1)
FROM dbo.TableName t
)
DELETE FROM CTE WHERE RN > 1
DELETE FROM CTE c1
WHERE EXISTS(
SELECT 1 FROM CTE c2
WEHRE c2.rn > 1
AND c1.Col1=c2.Col1
AND c1.Col2=c2.Col2
AND c1.Col3=c2.Col3
AND c1.Col4=c2.Col4
AND c1.Col5=c2.Col5
...
)