Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 删除SQL Server 2008中的重复行_Sql Server 2008_Duplicates - Fatal编程技术网

Sql server 2008 删除SQL Server 2008中的重复行

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

我知道这个问题被问了很多次,但每次我在自己的数据库中尝试一个答案时,重复的行就会被删除。从下面的数据表中删除第2行和第3行的最佳查询是什么

以下是图片的链接图片没有足够的信誉点:

谢谢

您可以使用带有行号的CTE:

这将删除除一行之外的所有重复行

如果要删除所有可以使用的内容,请执行以下操作:


你尝试过的方法有什么问题,你能至少说明一个吗?我不知道把表名等放在哪里。我在这里执行了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
    ...
)