基本述部

基本述部 は 2 つの値を比較したり、値の集合を別の値の集合と比較したりします。

構文図を読むビジュアル構文図をスキップcomparison-operatorrow-value-expressioncomparison-operatorrow-value-expressionブール式
comparison-operator
構文図を読むビジュアル構文図をスキップ =  <> 1 <  >  <= 1 >= 1
注:

2 つの比較演算子だけを使用して、事実上 6 つの比較演算子を表現できます。 述部のオペランドが x および y の場合、他の 4 つの比較演算子は以下の代替述部によって表現できます。

表 1. 述部および代替述部
述部 代替述部
x <> y NOT (x = y)
x > y y < x
x <= y x < y OR x = y
x >= y y < x OR x = y

述部のオペランドが expression として指定されている場合、両方の式のデータ・タイプは比較可能なタイプでなければなりません。 一方のオペランドの値が NULL 値の場合、述部の結果は不明です。 それ以外の場合の結果は、真または偽のいずれかになります。

表 2. スカラー・オペランドを使用する述部評価
述部 (オペランド値 xy を使用) ブール値 条件
x = y TRUE xy と等しい
x < y TRUE xy より小さい
x = y FALSE xy に等しくない
x < y FALSE X = Y が True であるか、または Y < X が True の場合

述部のオペランドが row-value-expression として指定されている場合、フィールドの数が同じで、両方のオペランドの対応するフィールドのデータ・タイプが比較可能なタイプでなければなりません。 比較の結果は、row-value-expression オペランドの対応するフィールドの比較に基づきます。

表 3. 行オペランドを使用した述部評価
述部 ( Rxi フィールドと Ryi フィールドがあるオペランド値 Rx および Ry を使用。0 < i < フィールド数) ブール値 条件
Rx = Ry TRUE 対応する値式のすべてのペアが等しい (i の値すべてに関して、Rxi = Ryi が Trueの場合)。
Rx < Ry TRUE T対応する値式の最初の N 個のペアが等しく、N の一部の値について次のペアの左の式値が右の式値よりも小さい (i < n のすべての値に関してRxi = Ryi が TRUE で、なおかつ n の一部の値に関しては Rxn < Ryn が TRUE の場合)。
Rx = Ry FALSE 対応する値式の少なくとも 1 つのペアが等しくない (NOT ((Rxi = Ryi) が i の一部の値に関して TRUE である)。
Rx < Ry FALSE 対応する値式のすべてペアが等しい (Rx = Ry が TRUE の場合)、または対応する値式の最初の N 個のペアが等しく、次のペアの右の値式が、N の一部の値に関して左の値式よりも小さい (i < n のすべての値に関して Rxi = Ryi が TRUE で、なおかつ n の一部の値に関しては Ryn < Rxn が TRUE の場合)。
Rx comparison operator Ry 不明 比較が TRUE でも FALSE でもない場合。

ブール値

基本述部を使用して、 ブール値 を別のブール値と比較したり、ブール値にキャストできるデータ・タイプの値と比較したりすることができます。 TRUE の値は FALSE の値より大きくなります。 以下に例を示します。
  • TRUE = 'on' は TRUE
  • DECFLOAT(4.3) = TRUE は TRUE
  • '0' <= FALSE は TRUE
  • 'yes' <= FALSEは FALSE

代替形式

比較演算子 <>、<=、>= については、代替形式がサポートされています。 (¬ =、¬ <、¬> という形式は、コード・ページ 437、819、850 でのみサポートされています。) このような代替形式がサポートされているのは、既存の SQL ステートメントに対応するためであり、新しい SQL ステートメントで使用することはお勧めしていません。

比較演算子 代替形式
<> ^= != ¬=
<= ^> !> ¬>
>= ^< !< ¬<

次に例を示します。

   EMPNO='528671'  
   SALARY < 20000 
   PRSTAFF <> :VAR1
   SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE)
  (YEARVAL, MONTHVAL) >= (2009, 10)