本节提供了一个视觉参考指南the grammar for the expression language used in X DevAPI.
schemaQualifiedIdent ::= ( ident_schema '.' )? ident
Figure 12.3 columnIdent
columnIdent ::= ( ident '.' ( ident '.' )? )? ident ( ( '->' | '->>' ) "'" '$' documentPath "'" )?
documentPathLastItem ::= '[*]' | '[' INT ']' | '.*' | '.' documentPathMember
castType ::= 'SIGNED' 'INTEGER'* | 'UNSIGNED' 'INTEGER'* | 'CHAR' lengthSpec* | 'BINARY' lengthSpec* | 'DECIMAL' ( lengthSpec | '(' INT ',' INT ')' )? | 'TIME' | 'DATE' | 'DATETIME' | 'JSON'
literal ::= INT | FLOAT | STRING_SQ | STRING_DQ | 'NULL' | 'FALSE' | 'TRUE'
atomicExpr ::= placeholder | columnOrPath | functionCall | groupedExpr | unaryOp | castOp
INTERVAL_UNIT ::= 'MICROSECOND' | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR' | 'SECOND_MICROSECOND' | 'MINUTE_MICROSECOND' | 'MINUTE_SECOND' | 'HOUR_MICROSECOND' | 'HOUR_SECOND' | 'HOUR_MINUTE' | 'DAY_MICROSECOND' | 'DAY_SECOND' | 'DAY_MINUTE' | 'DAY_HOUR' | 'YEAR_MONTH'
mulDivExpr ::= intervalExpr ( ( '*' | '/' | '%' ) intervalExpr )*
compExpr ::= bitExpr ( ( '>=' | '>' | '<=' | '<' | '=' | '<>' | '!=' ) bitExpr )*
ilriExpr ::= compExpr 'IS' 'NOT'* ( 'NULL' | 'TRUE' | 'FALSE' ) | compExpr 'NOT'* 'IN' '(' argsList* ')' | compExpr 'NOT'* 'IN' compExpr | compExpr 'NOT'* 'LIKE' compExpr ( 'ESCAPE' compExpr )* | compExpr 'NOT'* 'BETWEEN' compExpr 'AND' compExpr | compExpr 'NOT'* 'REGEXP' compExpr | compExpr
FLOAT ::= DIGIT* '.' DIGIT+ ( 'E' ( '+' | '-' )* DIGIT+ )* | DIGIT+ 'E' ( '+' | '-' )* DIGIT+
ID ::= ( 'a' - 'z' | 'A' - 'Z' | '_' ) ( 'a' - 'z' | 'A' - 'Z' | '0' - '9' | '_' )*