5

番号が最も小さい SQL テーブルの重複キーを削除する適切な方法が見つかりません。同じ Number の行が重複している場合は、そのうちの 1 つを削除する必要があります。

例えば

Key     Number  Description

11111   5   Desc1
11111   4   Desc2
22222   2   Desc1
22222   2   Desc2
33333   3   Desc1
33333   5   Desc2

ここでは、5 番より小さい 4 番の 2 行目、3 番目または 4 番めの行の 1 つ、最後の 5 番よりも 3 番小さい 5 行目を削除する必要があります。

4

2 に答える 2

6

SQL-Server で重複を削除するクエリ:

;with c as
(
    select *, row_number() over(partition by [Key] order by Number desc) as n
    from YouTable
)
delete from c
where n > 1
于 2013-04-01T11:32:10.597 に答える
2
DELETE FROM ztable dd
WHERE EXISTS (
  SELECT * FROM ztable ex
  WHERE ex.zkey = dd.zkey
  AND (ex.znumber > dd.znumber
       OR (ex.znumber = dd.znumber AND ex.description > dd.description)
       )
  );

注: 予約語/キーワードとの混乱を避けるために、キーと番号の名前を zkey と znumber に変更しました。ztable についても同様です。

于 2013-04-01T12:16:04.520 に答える