5

シナリオ

非常に大きなサイズのクエリは、複数の結合されたテーブルから多くのフィールドを返します。一部のレコードが重複しているようです。あなたはいくつかのチェック、いくつかのグループ化を達成します。さらに調査するために、いくつかのレコードに焦点を合わせます。それでも、各値をチェックするにはフィールドが多すぎます。

質問

2つのレコードを比較し、レコードが一致する場合はTRUEを返し、一致しない場合はFALSEと一致しないフィールドのセットを返す組み込み関数はありますか?

4

3 に答える 3

7

このCHECKSUM関数は、一致する行を識別するのに役立つはずです

 SELECT CHECKSUM(*) FROM table
于 2012-07-17T09:59:40.480 に答える
0

これがあなたが探しているものかもしれません:

SELECT * FROM YourTable 
GROUP BY <<ColumnList>>
HAVING COUNT(*) > 1

重複しているレコードを見つけるためにPodiluskaによって提供された提案に基づいて開発するだけです

SELECT CHECKSUM(*) 
FROM YourTable 
GROUP BY CHECKSUM(*) 
HAVING COUNT(*) > 1 
于 2012-07-17T10:46:06.760 に答える
0

この関数を使用して行を比較することをお勧めしますhashbytes。チェックサムよりも優れています。

すべての列でrow_numberとparttionを作成してから、rnが2以上のすべての行を選択するのはどうですか?これは遅い方法ではなく、完全なデータを提供し、複製されている行全体のデータを提供します。すべてのハッシュ手法に依存するのではなく、この方法を使用します。

于 2012-07-17T11:06:51.460 に答える