-1

1つの列に結合する2つのテーブルがあります(たとえばemp_id)。両方のテーブルにnull値がある場合、 SQL ServerOracleemp_idはどのように処理しますか?

Coz、私はinformaticaが結合時にNULL行を無視することを読みました。nullを処理する場合、-1を代入することにより、私が望まない相互結合が発生します。

ここで何ができますか?

NULLのある行を完全に無視することはできません。

ありがとう

4

2 に答える 2

1

colA = colBで参加して、NULLが等しいと比較されることを期待することはできません。ニーズに応じて(おそらく、以下のテーブル同期の必要性があると仮定して)、私が考えることができる3つのアプローチは次のとおりです。

  1. COALESCEを使用して、実際のデータでは決して発生しない適切な値が存在する場合は、nullの代わりに-1などの値を使用します。COALESCE(Table1.colA,-1) = COALESCE(Table2.colB,-1)
  2. すべての結合列でISNULLと等価性チェックの両方を使用します。
  3. INTERSECTを使用します(nullは同等として扱われます)。おそらく、JOINに戻ることができる派生テーブルにあります。
于 2010-05-09T17:21:33.773 に答える
1

おそらくあなたはleft outer joinウィキペディアを参照してください

Oracleでそれを行う方法は次のとおりです

のSQLServerドキュメントは次のとおりですleft outer join

于 2010-05-09T17:28:49.467 に答える