基本述部
基本述部 は 2 つの値を比較したり、値の集合を別の値の集合と比較したりします。
2 つの比較演算子だけを使用して、事実上 6 つの比較演算子を表現できます。 述部のオペランドが x および y の場合、他の 4 つの比較演算子は以下の代替述部によって表現できます。
述部 | 代替述部 |
---|---|
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 値の場合、述部の結果は不明です。 それ以外の場合の結果は、真または偽のいずれかになります。
述部 (オペランド値 x と y を使用) | ブール値 | 条件 |
---|---|---|
x = y |
TRUE | x は y と等しい |
x < y |
TRUE | x は y より小さい |
x = y |
FALSE | x は y に等しくない |
x < y |
FALSE | X = Y が True であるか、または Y < X が True の場合 |
述部のオペランドが row-value-expression として指定されている場合、フィールドの数が同じで、両方のオペランドの対応するフィールドのデータ・タイプが比較可能なタイプでなければなりません。 比較の結果は、row-value-expression オペランドの対応するフィールドの比較に基づきます。
述部 ( 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'
は TRUEDECFLOAT(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)