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 大于等于开始表达式且小于等于结束表达式,则条件的评测结果为 true。
NOT 关键字会使条件的含义相反,但对于 UNKNOWN,其含义保持不变。
BETWEEN 条件相当于两个不等式的组合:
[ 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 不为空值且至少等于列表中的一个值,则返回 true。
如果 expression 为空值而值列表非空,或者如果至少其中一个值为空值且表达式不等于任何其它值,则返回 unknown。
如果没有值为空值,且 expression 不等于列表中的任何值,则返回 false。
使用 NOT 关键字将使 true 与 false 相互转换。
例如:
Country IN ( 'UK', 'US', 'France' )
对于 'UK'
为真而对于 'Peru'
为假。它等效于以下语句:
( Country = 'UK' ) \ OR ( Country = 'US' ) \ OR ( Country = 'France' ) |
Country NOT IN ( 'UK', 'US', 'France' )
对于 'UK'
为假而对于 'Peru'
为真。它等效于以下语句:
NOT ( ( Country = 'UK' ) \ OR ( Country = 'US' ) \ OR ( Country = 'France' ) ) |
LIKE LIKE 条件的值可以是 true、false 或 unknown。
无关键字 NOT 时,如果 expression 与 like expression 匹配,则条件的评测结果为 true。如果 expression 或 like expression 中有一个值为空值,则此条件为 unknown。
NOT 关键字会使条件的含义相反,但对于 UNKNOWN,其含义保持不变。
like expression 可包含任意数目的通配符。通配符包括:
通配符 | 匹配项 |
---|---|
_(下划线) | 任意一个字符 |
%(百分号) | 包含零个或多个字符的任意字符串 |
例如:
phone LIKE 12%3
对于 '123'
或 '12993'
为真而对于 '1234'
为假
word LIKE 's_d'
对于 'sad'
为真而对于 'said'
为假
phone NOT LIKE '12%3'
对于 '123'
或 '12993'
为假而对于 '1234'
为真
ESCAPE CHARACTER ESCAPE CHARACTER 是单字符的字符串文字,其字符用于在 pattern 中将通配符字符(_、%)的特殊含义进行转义。例如:
underscored LIKE '\_%' ESCAPE '\'
对于 '_myvar'
为真而对于 'myvar'
为假。
IS NULL 如果 rule-variable 为 unknown,则 IS NULL 条件的评测结果为 true;否则为 false。NOT 关键字使条件的含义相反。此条件的评测结果不能为 unknown。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |