SQL Server 2008仅在字段唯一的情况下删除



我现在有这个:

DELETE FROM t
FROM (
    SELECT 
          *
        , rn = ROW_NUMBER() OVER (
                    PARTITION BY Street, CAST(PC AS CHAR(4)) 
                    ORDER BY CAST(PC AS CHAR(4)) 
            )
    FROM Locals where DATALENGTH(PC) < 13
) t 
WHERE rn > 1

但我只想在CCD_ 1列相同的情况下删除。

DELETE t
FROM (
      SELECT rn = ROW_NUMBER() OVER (PARTITION BY PC ORDER BY PC)
      FROM Locals 
      WHERE DATALENGTH(PC) < 13
      ) t
WHERE t.rn > 1

请参阅SQLFiddle

上的示例

因此,如果PC字段如下所示:sw1-xyz、sw1-yxz、sw2-xyz。我想删除所有PC字段已经重复的条目,所以在上面的例子中,它将删除PC字段中具有sw1-xyz的所有条目,但保留其中一个。

相关内容

最新更新