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 | arithmetic-expression | rule-variable | ( expression ) | | rule-function ( expression, ... )
constant: integer | floating-point number | string | boolean
arithmetic-expression: numeric-constant | rule-variable | - arithmetic-expression | arithmetic-expression operator arithmetic-expression | ( arithmetic-expression ) | rule-function ( expression, ... )
numeric-constant: integer | floating-point number
整数: -2**63 ~ 2**63-1 の範囲内の整数です。
浮動小数点数: 2.2250738585072e-308 ~ 1.79769313486231e+308 の範囲内の指数表記の数です。
文字列: 一重引用符で囲まれた一連の文字です。文字列内の一重引用符を表すには、一重引用符を 2 つ続けて使用します。
ブール値: 文が TRUE または FALSE、T または F、Y または N、1 または 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 19
は age < 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 キーワードがない場合、expression が like 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 に評価されることはありません。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |