AdventureWorksという名前のデータベースには、Production.ProductとSales.SalesOrderDetailという2つのテーブルが含まれています。表には、入手可能な製品に関するデータと詳細な注文履歴が含まれています。
Production.Productテーブルには、次の2つの列があります。
製品番号

名

Sales.SalesOrderDetailテーブルには、次の3つの列があります。
SalesOrderID

製品番号

注文数量

注文したことがないすべての製品をリストしたクエリを作成する必要があります。
どのステートメントを実行しますか?
A:

B:

子:

D:

正解:A
説明/参照:
Explanation:
EXCEPTとINTERSECTは、2つのクエリの結果を比較して異なる行を返します。
EXCEPTは、左側の入力クエリから、右側の入力クエリでは出力されない、異なる行を返します。
ORDER BY句の列名または別名は、左側のクエリによって返される列名を参照する必要があります。
例:次の照会は、右側の照会にも見つからない、EXCEPT演算子の左側にある照会からの異なる値を戻します。
- AdventureWorksを使用します
SELECT CustomerKey
FactInternetSalesから
除く
SELECT CustomerKey
DimCustomerから
WHERE DimCustomer.Gender = 'F'
CustomerKeyによる注文。
- 結果:9351行(女性ではない顧客への販売)
間違った答え:
B:ORDER BY句の列名または別名は、左側のクエリによって返される列名を参照する必要があります。
C、D:INTERSECTは、左右両方の入力照会演算子によって出力される別々の行を返します。
参照先:https://msdn.microsoft.com/ja-jp/library/ms188055.aspx