[SQL Server] データが重複してしているレコードを抽出する
どの値が重複しているか不明で、そのレコードを取得したい場合は、以下のような条件で検索する。
なお、この例では、一時テーブルを使用している。
結果は以下のようになる。
ID が 11 と 100 のレコードで重複が発生していることがわかった。
なお、この例では、一時テーブルを使用している。
CREATE TABLE #T1 ( ID NUMERIC(3) ,GIVEN_NAME NVARCHAR(50) ) INSERT INTO #T1 (ID,GIVEN_NAME) VALUES (11,'Taro'),(12,'Jiro'),(100,'Saburo'),(11,'Siro'),(15,'Goro'),(100,'Rokuro'),(17,'Sitiro') -- ID が重複しているレコードを抽出する。 SELECT * FROM #T1 T1 WHERE EXISTS ( SELECT ID FROM #T1 WHERE T1.ID = #T1.ID GROUP BY #T1.ID HAVING COUNT(*) > 1 ) ORDER BY ID DROP TABLE #T1
結果は以下のようになる。
ID が 11 と 100 のレコードで重複が発生していることがわかった。
ID GIVEN_NAME ----------------------- ----------------------- 11 Taro 11 Siro 100 Rokuro 100 Saburo (4 行処理されました)