These operators are supported as-is.
| Operator | Name | Operation | Compatible Data Types | Example |
|---|
[] | substring | substring | VARCHAR, CHAR | SELECT 'hello'[1, 3]; |
|| | concat | concatenation | concat | concatenation |
< | lt | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 5 < 10; |
> | gt | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 10 > 5; |
<= | lte | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 5 <= 10; |
>= | gte | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 10 >= 5; |
= | eq | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 5 = 5; |
<> | neq | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 5 <> 10; |
!= | neq | comparison operator | NUMERIC, DATE, VARCHAR | SELECT 5 != 10; |
-> | lambda | syntax for higher-order functions | FUNCTIONAL | SELECT transform(array[1, 2], x -> x + 1); |
+ | plus | arithmetic operator | NUMERIC | SELECT 5 + 3; |
- | minus | arithmetic operator | NUMERIC | SELECT 5 - 3; |
* | mul | arithmetic operator | NUMERIC | SELECT 5 * 3; |
/ | div | arithmetic operator | NUMERIC | SELECT 5 / 3; |
% | mod | arithmetic operator | NUMERIC | SELECT 5 % 3; |
. | dot | struct operator | struct | If the struct is of the form: arr_struct <timestamp, arr> you can access timestamp as arr_struct.timestamp, etc. |
Null Handling
Inequalities
a | b | a > b | a >= b | a = b | a <> b | a != b |
|---|
1 | 1 | FALSE | TRUE | TRUE | FALSE | FALSE |
1 | 2 | FALSE | FALSE | FALSE | TRUE | TRUE |
1 | NULL | NULL | NULL | NULL | NULL | NULL |
NULL | 1 | NULL | NULL | NULL | NULL | NULL |
NULL | NULL | NULL | NULL | NULL | NULL | NULL |
Logical operators
| a | b | a OR b | a AND b |
|---|
TRUE | NULL | TRUE | NULL |
FALSE | NULL | NULL | FALSE |
NULL | TRUE | TRUE | NULL |
NULL | FALSE | NULL | FALSE |
NULL | NULL | NULL | NULL |