SQL 解説書

比較述部

>>-+-expression1--+- = -------+---+-SOME-+---(fullselect1)------+->
   |              |      (1)  |   +-ANY--+                      |
   |              +- <> ------+   '-ALL--'                      |
   |              +- < -------+                                 |
   |              +- > -------+                                 |
   |              +- <= ------+                                 |
   |              '- >= ------'                                 |
   |    .-,----------------.                                    |
   |    V                  |                                    |
   '-(------expression2----+---)-- = --+-SOME-+---(fullselect2)-'
                                       '-ANY--'
 
>--------------------------------------------------------------><
 

注:

  1. その他の比較演算子もサポートされています。38

比較述部 は、 1 つの値もしくは複数の値と、値の集合との間で比較を行います。

全選択は、 述部演算子の左側に指定されている式の数と同じ数の列を識別しなければなりません (SQLSTATE 428C4)。

全選択は、任意の行数を戻すことができます。

ALL を指定した場合、

SOME または ANY を指定した場合、

例: 以降の例を参照する場合、次の表を使用してください。

図 10.

比較述部の表の例

例 1

  SELECT COLA FROM TBLAB
     WHERE COLA = ANY(SELECT COLX FROM TBLXY)

結果は 2、3 です。 副選択は (2,3) を戻します。 行 2 と 3 の COLA は、それらの値の少なくとも 1 つに等しくなっています。

例 2

  SELECT COLA FROM TBLAB
     WHERE COLA > ANY(SELECT COLX FROM TBLXY)

結果は 3、4 です。 副選択は (2,3) を戻します。 行 3 と 4 の COLA は、それらの値の少なくとも 1 つより大きくなっています。

例 3

  SELECT COLA FROM TBLAB
     WHERE COLA > ALL(SELECT COLX FROM TBLXY)

結果は 4 です。副選択は (2,3) を戻します。 それらの値の両方より大きいものは、行 4 の COLA しかありません。

例 4

  SELECT COLA FROM TBLAB
     WHERE COLA > ALL(SELECT COLX FROM TBLXY
                         WHERE COLX<0)

結果は 1、2、3、4、ヌル値です。 副選択は値を戻しません。 したがって、述部は TBLAB のすべての行に対して真です。

例 5

SELECT * FROM TBLAB
   WHERE (COLA,COLB+10) = SOME (SELECT COLX, COLY FROM TBLXY)

副選択は TBLXY からすべての項目を戻します。 述部は副選択に対して真であるため、結果は次のようになります。

COLA        COLB       
----------- -----------
          2          12
          3          13

例 6

SELECT * FROM TBLAB
   WHERE (COLA,COLB) = ANY (SELECT COLX,COLY-10 FROM TBLXY)

副選択は TBLXY から COLX および COLY-10 を戻します。 述部は副選択に対して真であるため、結果は次のようになります。

COLA        COLB       
----------- -----------
          2          12
          3          13


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]