Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 如何删除SQL Server中除一条记录外的所有重复记录_Sql Server - Fatal编程技术网

Sql server 如何删除SQL Server中除一条记录外的所有重复记录

Sql server 如何删除SQL Server中除一条记录外的所有重复记录,sql-server,Sql Server,我试图删除多条记录,但没有删除一条记录 输入: Id Temp P_TempId ------------------------------------ AN #1001#.Test 5001,8001 AN #1001#.Test 5001,8001 AN #1002#.Test 5001,4001,7001,8001 AN #1002#.Test 5001,4001,7001,8001

我试图删除多条记录,但没有删除一条记录

输入:

    Id  Temp           P_TempId
    ------------------------------------
    AN  #1001#.Test    5001,8001
    AN  #1001#.Test    5001,8001
    AN  #1002#.Test    5001,4001,7001,8001
    AN  #1002#.Test    5001,4001,7001,8001
    AN  #1002#.Test    5001,4001,7001,8001
输出:

        Id  Temp        P_TempId
        ---------------------------------------
        AN  #1001#.Test 5001,8001
        AN  #1002#.Test 5001,4001,7001,8001
使用with对每组
Id\u Temp、p\u TempId
进行编号,并删除编号大于1的部分

;with cte as (
  select   
      *
    , rn = row_number() over (
            partition by Id, Temp, P_TempId
            order by (select 1)
            )
    from t
)
delete 
  from cte 
  where cte.rn > 1 
或者不使用cte,而是使用标准子查询:

  delete s
  from (
    select   
        *
      , rn = row_number() over (
              partition by Id, Temp, P_TempId
              order by (select 1)
              )
    from t
    ) as s
  where s.rn > 1 
rextester演示:

返回:

+----+-------------+---------------------+
| Id |    Temp     |      P_TempId       |
+----+-------------+---------------------+
| AN | #1001#.Test | 5001,8001           |
| AN | #1002#.Test | 5001,4001,7001,8001 |
+----+-------------+---------------------+

@冲锋呐,我错了。我错过了子查询中部分的
。现在更正。