Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
2 つのクエリブロックの集合差を返します。
[ WITH temporary-views ] main-query-block EXCEPT [ ALL | DISTINCT ] except-query-block [ ORDER BY [ integer | select-list-expression-name ] [ ASC | DESC ], ... ] [ FOR XML xml-mode ] [ OPTION( query-hint, ... ) ]
query-hint : MATERIALIZED VIEW OPTIMIZATION option-value | FORCE OPTIMIZATION | option-name = option-value
main-query-block :query-block.一般的な SQL 構文要素を参照してください。
except-query-block :query-block.一般的な SQL 構文要素を参照してください。
option-name : identifier
option-value : hostvar (許可されたインジケータ) | string | identifier | number
main-query-block SELECT 文またはクエリ式を構成するクエリブロック (ネストされている可能性あり)。
except-query-block SELECT 文またはクエリ式を構成するクエリブロック (ネストされている可能性あり)。
FOR XML 句 FOR XML 句の詳細については、SELECT 文を参照してください。
OPTION 句 この句は、文を実行するためのヒントを指定するときに使用します。次のヒントがサポートされます。
OPTION( isolation_level = ... )
EXCEPT 文は、main-query-block 内のすべてのロー (except-query-block 内にも存在するローを除く) を返します。main-query-block での重複が、結果で重複として表示されないようにする場合は、EXCEPT または EXCEPT DISTINCT を指定します。それ以外の場合は、EXCEPT ALL を指定します。クエリブロックはネストできます。
EXCEPT 単独での使用は、EXCEPT DISTINCT と同じです。
main-query-block と except-query-block は和両立する必要があります。それぞれの SELECT リストには同数の項目が含まれており、かつ、各項目の型は比較可能である必要があります。2 つの SELECT リスト内の対応する項目が異なるデータ型の場合、SQL Anywhere は結果の中から対応するカラムのデータ型を選択し、各 query-block のカラムを自動的にそれぞれ変換します。
EXCEPT ALL では、集合差ではなく、バッグ差を実装します。たとえば、main-query-block 内に特定の値を持つ 5 つの (重複) ローがあり、except-query-block 内に同一の値を持つ 2 つの重複ローがある場合、EXCEPT ALL は 3 つのローを返します。
main-query-block 内に重複ローがない場合、EXCEPT の結果は EXCEPT ALL の結果と同じになります。
表示されるカラム名は最初の query-block に表示されるカラム名と同じであり、これらの名前は ORDER BY 句と一致する式の名前を判断するために使用されます。結果セットのカラム名をカスタマイズする別の方法として、共通のテーブル式 (WITH 句) を使用する方法があります。
query-block で参照されているテーブルを所有しているか、SELECT ANY TABLE 権限を持っている必要があります。
なし
SQL/2008 EXCEPT DISTINCT は、SQL/2008 標準のコア機能です。EXCEPT ALL は、オプションの SQL 言語機能 F304 を構成します。EXCEPT とともに DISTINCT キーワードを明示的に指定する方法は、SQL/2008 標準のオプションの SQL 言語機能 T551 です。EXCEPT とともに ORDER BY 句を指定する方法は、SQL 言語機能 F850 です。ORDER BY 句を含む query-block は、SQL/2008 機能 F851 の構成要素です。ロー制限句 (SELECT TOP または LIMIT) を含むクエリブロックは、コンテキストに応じて、オプションの SQL 言語機能 F857 または F858 を構成します。FOR XML 句と OPTION 句はベンダー拡張です。
Transact-SQL EXCEPT は、Adaptive Server Enterprise ではサポートされていません。ただし、SQL Anywhere でサポートされている Transact-SQL ダイアレクトでは、EXCEPT ALL と EXCEPT DISTINCT の両方を使用できます。
EXCEPT の使用例については、集合演算子と NULLを参照してください。