EXCEPT の前にあるクエリ・ブロックの結果セットに存在し、EXCEPT の後にあるクエリ・ブロックの結果セットに存在しないローを返します。
[ 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:1 つのクエリ・ブロック。一般的な SQL 構文要素を参照してください。
except-query-block:1 つのクエリ・ブロック。一般的な SQL 構文要素を参照してください。
option-name : identifier
option-value : hostvar (許容されたインジケータ), string, identifier, または number
main-query-block 1 つまたは複数のクエリ・ブロックが比較される 1 つのクエリ・ブロック。
except-query-block EXCEPT 句の右側にある 1 つのクエリ・ブロック。except-query-block の結果が main-query-block の結果と比較され、main-query-block にのみ存在するローが識別されます。
EXCEPT 句 main-query-block に重複するローがあり、そのローが except-query-block のローに一致しない場合、EXCEPT ALL を指定すると重複が結果に表示されます。結果の重複を抑制するには、代わりに EXCEPT または EXCEPT DISTINCT を指定します。
OPTION 句 この句は、文を実行するためのヒントを指定するときに使用します。次のヒントがサポートされます。
これらのオプションの詳細については、SELECT 文の OPTIONS 句の説明を参照してください。
EXCEPT 句は、main-query-block の結果を 1 つまたは複数の except-query-block と比較し、main-query-block に存在するローのみを返すときに使用します。main-query-block での重複が、結果で重複として表示されないようにする場合は、EXCEPT または EXCEPT DISTINCT を指定します。それ以外の場合は、EXCEPT ALL を指定します。
EXCEPT は EXCEPT DISTINCT と同じです。
query-block では、それぞれ select リストの中の項目数が同じになるようにしてください。
EXCEPT ALL の結果セットにあるローの数は、別々のクエリの結果セットにあるローの数間の差に一致します。
EXCEPT の結果は EXCEPT ALL と同じです。ただし、EXCEPT を使用する場合の異なる点は、結果セット間の差が計算される前に重複するローが削除されることです。
2 つの select リスト内の対応する項目が異なるデータ型の場合、SQL Anywhere は結果の中から対応するカラムのデータ型を選択し、各 query-block のカラムを自動的にそれぞれ変換します。UNION の最初のクエリ指定は、ORDER BY 句と一致する名前を判断するために使用します。
表示されるカラム名は、最初の query-block に対して表示されるカラム名と同じです。結果セットのカラム名をカスタマイズするには、query-block で WITH 句を使用するという方法もあります。
各 query-block には SELECT パーミッションが必要です。
なし
SQL/2003 EXCEPT DISTINCT はコア機能です。EXCEPT ALL は F304 です。
EXCEPT の使用例については、集合演算子と NULLを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |