ESQL の複雑な比較演算子

このトピックでは、ESQL の複雑な比較演算子 (述部) について説明します。ESQL の単純な比較演算子に関する情報については、ESQL の単純な比較演算子を参照してください。

演算子 BETWEEN
演算子 BETWEEN を使うと、ある値が 2 つの境界値の間にあるかどうかをテストすることができます。

この演算子は、SYMMETRIC と ASYMMETRIC (どちらも指定しない場合のデフォルト) の 2 つの形式で存在します。SYMMETRIC 形式は、以下と同等です。

(source >= boundary1 AND source <= boundary2) OR
(source >= boundary2 AND source <= boundary1)

ASYMMETRIC 形式は、以下と同等です。

source >= boundary1 AND source <= boundary2

ASYMMETRIC 形式の方が単純ですが、第 1 の境界値の値が第 2 の境界値より小さい場合に、期待する結果を戻すに過ぎません。境界条件式がリテラルの場合にのみ役立ちます。

オペランドのタイプが異なる場合には、特別な規則が適用されます。これについては、暗黙のキャストで説明されています。

演算子 EXISTS
演算子 EXISTS は、SELECT 関数が 1 つ以上の値を戻したか (TRUE)、 それとも値を戻さなかったか (FALSE) を示すブール値を戻します。
EXISTS(SELECT * FROM something WHERE predicate)
演算子 IN
演算子 IN を使用すると、ある値が、いくつかの値のリストのうちのいずれかと等しいかどうかをテストできます。

左オペランドが NULL でなく、右オペランドのいずれかと等しいなら、結果は TRUE になります。左オペランドが NULL でなく、右オペランドのどれも NULL 値でなく、 左オペランドが右オペランドのどれにも等しくないなら、結果は FALSE です。それ以外の場合、結果は UNKNOWN です。 オペランドのタイプが異なる場合には、特別な規則が適用されます。これについては、暗黙のキャストで説明されています。

演算子 IS
演算子 IS を使うと、ある式が特殊値を戻したかどうかをテストできます。

演算子 IS の主な目的は、ある値が NULL かどうかをテストすることです。これは、比較演算子 (=) ではできません。ある値と NULL との比較結果は常に NULL になるからです。

また IS を使用して、ブール値 TRUE および FALSE のテストを行ったり、10 進数の値が特殊値かどうかテストしたりできます。これらのテストは、大/小文字混合した値 INF、+INF、-INF、 NAN (数値ではない)、および NUM (有効な数値) によって示されます。代替フォーム +INFINITY、-INFINITY、および NUMBER も受け入れられます。

非数値タイプに適用される場合、結果は FALSE となります。

演算子 LIKE
演算子 LIKE は、特定のパターンと一致するストリングを検索します。

どのオペランドも NULL ではなく、source オペランドがパターン・オペランドと一致する場合、結果は TRUE です。どのオペランドも NULL ではなく、source オペランドがパターン・オペランドと一致しない場合、結果は FALSE です。それ以外の場合、結果は UNKNOWN です。

パターンは、特別な意味を持つパーセント (%) 文字および下線 (_) 文字のストリングで指定します。

  • 下線文字 _ は、任意の 1 文字と一致します。
    例えば、次の述部は、IBM と IGI に一致するものを検索しますが、International Business Machines または IBM Corp と一致するものは検索しません。
    Body.Trade.Company LIKE 'I__'
  • パーセント文字 % は、ゼロ個または任意数の文字で構成されるストリングと一致します。
    例えば、次の述部は、IBM、IGI、International Business Machines、および IBM Corp と一致するものを検索します。
    Body.Trade.Company LIKE 'I%'

パーセント文字および下線文字をマッチングの対象とする式の中で使用するには、これらの文字の前にエスケープ文字を付ける必要があります。エスケープ文字のデフォルトは、円記号 (¥) 文字です。

例えば、次の述部は、IBM_Corp と一致するものを検索します。

Body.Trade.Company LIKE 'IBM¥_Corp'

ESCAPE 文節を使用すれば、別のエスケープ文字を指定できます。例えば、上記の例を次のように指定することもできます。

Body.Trade.Company LIKE 'IBM$_Corp' ESCAPE '$'
演算子 SINGULAR
演算子 SINGULAR は、リストにエレメントが 1 つのみある場合は TRUE のブール値を戻し、それ以外の場合は FALSE を戻します。
関連概念
メッセージ・フローの概要
メッセージ・マッピングの概要
関連タスク
メッセージ・フローの作成
ESQL の開発
関連資料
ESQL の単純な比較演算子
組み込みノード
ESQL 参照
ROW および LIST の比較
暗黙のキャスト
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak01045_