注:この質問は、同じまたは類似の回答の選択肢を使用する一連の質問の一部です。回答の選択肢は、シリーズの複数の質問に対して正しいかもしれません。各質問は、このシリーズの他の質問とは独立しています。質問で提供される情報と詳細は、その質問にのみ適用されます。
Customer_CRMSystemおよびCustomer_HRSystemという名前のテーブルを含むデータベースがあります。どちらのテーブルも次の構造を使用します。

テーブルには次のレコードが存在します。
Customer_CRMSystem

Customer_HRSystem

CustomerCodeのnull値を含むレコードは、CustomerNameによって一意に識別できます。
両方のテーブルに表示される個別の顧客を表示する必要があります。
どのTransact-SQL文を実行する必要がありますか?
A:

B:

C:

D:

E:

F:

G:

H:

正解:J
説明/参照:
Explanation:
結合の結果に不一致の行を含めることにより、不一致情報を保持するには、完全外部結合を使用します。 SQL Serverは、完全な外部結合演算子FULL OUTER JOINを提供します。これは、他のテーブルに一致する値があるかどうかにかかわらず、両方のテーブルのすべての行を含みます。
間違った回答:
A:内部ジョインは、ジョイン条件に一致する両方のテーブルから少なくとも1つのローがある場合にのみ、ローを返します。内部結合は、他のテーブルの行と一致しない行を削除します。
B:INTERSECTは、左と右の入力クエリ演算子の両方によって出力される個別の行を返します。
D:EXCEPTは、左の入力クエリから、正しい入力クエリによって出力されない別個の行を返します。
E:UNIONは、複数の結果セットを結合して1つの結果セットとして返すように指定しますが、CustomerID列の値が一致しないため、ここでは機能しません。
F:UNION ALLはすべての行を結果に組み込みます。これには重複が含まれます。指定しない場合、重複行は削除されます。
G:クロスジョインは、2つのテーブルのデカルト積を生成します。
参考文献:https://technet.microsoft.com/en-us/library/ms187518(v=sql.105).aspx