Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (E ~ O)

 

EXCEPT 句

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 句   この句は、文を実行するためのヒントを指定するときに使用します。次のヒントがサポートされます。

    • MATERIALIZED VIEW OPTIMIZATION option-value
    • FORCE OPTIMIZATION
    • option-name = option-value

    これらのオプションの詳細については、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を参照してください。