Expressions, Functions, and Operators
Syntax
/* type syntax */
sql_type:
{ 'INT' | 'SMALLINT' | 'BIGINT' | 'FLOAT' | 'DOUBLE' | 'STRING' | 'TIMESTAMP' | 'DATE' | 'BOOL' }
/*SQL expression syntax*/
sql_expr:
{ column_ref | expr_const | sql_call_expr | sql_cast_expr | sql_unary_expr | sql_binary_expr |
sql_case_when_expr | sql_between_expr| sql_in_expr | sql_like_expr }
/*column reference expression syntax*/
column_ref:
{ column_name | relation_name '.' column_name | relation_name."*" }
/*type cast expression syntax*/
sql_cast_expr:
{ CAST '(' sql_expr 'AS' sql_type ')' | sql_type '(' sql_expr ')' }
/*const expression syntax*/
expr_const:
{STRING | INTNUM | LONGNUM | DOUBLENUM | FLOATNUM | BOOLVALUE | NULLX}
/* unary expression syntax */
sql_unary_expr:
{ '!' | 'NOT' | '-' } sql_expr
/*binary expression syntax*/
sql_binary_expr:
sql_expr {
'+' | '-' | '*' | '/' | 'DIV' | '%' | 'MOD' |
'>' | '<' | '=' | '>=' | '<=' | '<>' |
'AND' | 'OR' | 'XOR' |
'LIKE' | 'NOT LIKE' |
} sql_expr
sql_case_when_expr:
{
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
| CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
}
sql_between_expr:
sql_expr BETWEEN sql_expr AND sql_expr
sql_in_expr:
sql_expr [NOT] IN '(' sql_expr [, sql_expr ...] ')'
sql_like_expr:
sql_expr [NOT] LIKE sql_expr
/* call function expression */
sql_call_expr:
function_name '(' [sql_expr, ...] ')'Limitations
语句类型
状态
1. Comparison Operators
Name
Description
Example
2. Logical Operators
Name
Description
Example
3. Arithmetic Operators
Name
Description
Example
4. Bit Operators
Name
Description
Example
5. Conversion Operators
Name
Description
Example
Limitations
src|dist
bool
smallint
int
float
int64
double
timestamp
date
string
Last updated