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

SQL Anywhere 11.0.1 (日本語) » QAnywhere » QAnywhere リファレンス » QAnywhere 転送ルールと削除ルール » ルールの構文

 

条件構文

QAnywhere 条件は、SQL の構文に似ています。条件の評価対象は、メッセージ・ストア内のメッセージです。条件は、true、false、unknown のいずれかに評価されます。条件が空の場合は、すべてのメッセージが条件を満たすものと判定されます。条件は、転送ルール、削除ルール、QAnywhere プログラミング API で使用できます。

キーワードと文字列比較では、大文字と小文字を区別しません。

構文
condition :
expression IS [ NOT ] NULL
| expression compare expression
| expression [ NOT ] BETWEEN expression AND expression 
| expression [ NOT ] LIKE pattern [ ESCAPE character ]
| expression [ NOT ] IN ( string, ...  ) 
| NOT condition
| condition AND condition
| condition OR condition
| ( condition )
compare: = |> | < | >= | <= | <>
expression:
constant
| rule-variable
| -expression
| expression operator expression
| ( expression )
| rule-function ( expression, ... )
constant: integer | floating point number | string | boolean
integer: An integer in the range -2**63 to 2**63-1.
floating point number: A number in scientific notation in the range 2.2250738585072e-308 to 1.79769313486231e+308.
string: A sequence of characters enclosed in single quotes. A single quote in a string is represented by two consecutive single quotes.
boolean: A statement that is TRUE or FALSE, T or F, Y or N, 1 or 0.
operator: + | - | * | /
rule-variable: 

ルール変数を参照してください。

rule-function: 

ルール関数を参照してください。

パラメータ
  • BETWEEN   BETWEEN 条件は、true、false、または unknown として評価できます。NOT キーワードがない場合、expression が start expression と end expression の間にあれば、条件は true と評価されます。

    NOT キーワードを使用すると条件の意味が逆になりますが、UNKNOWN は変わりません。

    BETWEEN 条件は、次の 2 つの不等式の組み合わせと等価です。

    [ NOT ] ( expression >= start-expression AND arithmetic-expression <= end-expr )
    

    次に例を示します。

    • age BETWEEN 15 AND 19 この文は次の文と同義です。 age >=15 AND age <= 19

    • age NOT BETWEEN 15 AND 19age < 15 OR age > 19 と同義です。

  • IN   IN 条件は、次の規則に従って評価されます。

    • expression が NULL でなく、リスト内の少なくとも 1 つと等しい場合、true です。

    • expression が NULL で値リストが空でない場合、または少なくとも 1 つの値が NULL で、expression が他の値のいずれとも等しくない場合、unknown です。

    • いずれの値も NULL でなく、expression がリスト内のいずれの値とも等しくない場合、false です。

    NOT キーワードを指定すると、評価結果の true と false が逆になります。

    次に例を示します。

    • Country IN ( 'UK', 'US', 'France' ) は、'UK' の場合は true、'Peru' の場合は false になります。これは、次の条件と同義です。

      ( Country = 'UK' )       \
      OR ( Country = 'US' )    \
      OR ( Country = 'France' )
    • Country NOT IN ( 'UK', 'US', 'France' ) は、'UK' の場合は false、'Peru' の場合は true になります。これは、次の条件と同義です。

      NOT ( ( Country = 'UK' )         \
            OR ( Country = 'US' )      \
            OR ( Country = 'France' ) )

  • LIKE   LIKE 条件は、true、false、または unknown として評価できます。

    NOT キーワードがない場合、expressionlike expression に一致すれば、条件は true と評価されます。expression または like expression が NULL 値の場合、この条件は unknown です。

    NOT キーワードを使用すると条件の意味が逆になりますが、unknown は変わりません。

    like expression には、任意の数のワイルドカードを指定できます。次のワイルドカードを使用できます。

    ワイルドカード 一致するもの
    _ (アンダースコア) 任意の 1 文字
    % (パーセント記号) 0 個以上の文字からなる任意の文字列

    次に例を示します。

    • phone LIKE 12%3 は、'123' または '12993' の場合は true、'1234' の場合は false になります。

    • word LIKE 's_d' は、'sad' の場合は true、'said' の場合は false になります。

    • phone NOT LIKE '12%3' は、'123' または '12993' の場合は false、'1234' の場合は true になります。

  • エスケープ文字   エスケープ文字は、pattern 内のワイルドカード文字 (_%) の特殊な意味をなくすために使用される 1 文字リテラルです。次に例を示します。

    • underscored LIKE '\_%' ESCAPE '\' は、'_myvar' の場合は true、'myvar' の場合は false になります。

  • IS NULL   IS NULL 条件は、rule-variable が不定の場合は true、それ以外の場合は false に評価されます。NOT キーワードを使用すると条件の意味が逆になります。IS NULL 条件が unknown に評価されることはありません。