0

同じ構造のテーブルが2つあります。a.ID *(varchar(10))、a.CODE_ASS(varchar(1))*およびb.ID *(varchar(10))、b.CODE_ASS(varchar(1))*

表「a」には2010年のデータが含まれ、表「b」には2013年のデータが含まれています。

これらの2つのテーブルには、それぞれに同じ数の行が含まれていてはなりませんが、共通のIDは同じである必要があります。テーブルを比較して違いを見つける必要があります。

ここに画像の説明を入力してください

この例でわかるように、緑の行は問題なく、赤の行はエラーであるはずです。ID 2、4、および5は、いくつかの違いがあるため、エラーです。「a」テーブルのID6は、テーブル「b」で削除されていても問題ありません。

4

1 に答える 1

1

ID でデータを結合し、値が異なる場所のみを選択するクエリを作成すると、SQL テーブルを使用しているように見えます。本当に 0 = NULL だと思いますか?

SELECT a.ID FROM a INNER JOIN  b ON a.ID = b.ID WHERE a.ID<>b.ID;

0 = NULL が必要な場合は、NULL を 0 に変更する必要があります。これは次のようになります。

SELECT a.ID FROM a INNER JOIN b ON a.ID = b.ID WHERE ISNULL(a.ID,0)<>ISNULL(b.ID,0);

ISNULL(param, value) は、NULL を値 (この場合は 0) に変更します。

レコードセット オブジェクトを使用していると推測しているので、結果をループするだけです。

于 2012-08-29T18:52:19.297 に答える