Operators are used in code to perform computations. This topic describes four types of operators: relational operators, arithmetic operators, bitwise operators, and logical operators.
Relational operators
Operator  Description 

A=B  If A or B is NULL, NULL is returned. If A is equal to B, TRUE is returned. Otherwise, FALSE is returned. 
A<>B  If A or B is NULL, NULL is returned. If A is unequal to B, TRUE is returned. Otherwise, FALSE is returned. 
A<B  If A or B is NULL, NULL is returned. If A is less than B, TRUE is returned. Otherwise, FALSE is returned. 
A<=B  If A or B is NULL, NULL is returned. If A is less than or equal to B, TRUE is returned. Otherwise, FALSE is returned. 
A>B  If A or B is NULL, NULL is returned. If A is greater than B, TRUE is returned. Otherwise, FALSE is returned. 
A>=B  If A or B is NULL, NULL is returned. If A is greater than or equal to B, TRUE is returned. Otherwise, FALSE is returned. 
A IS NULL  If A is NULL, TRUE is returned. Otherwise, FALSE is returned. 
A IS NOT NULL  If A is not NULL, TRUE is returned. Otherwise, FALSE is returned. 
A LIKE B  If A or B is NULL, NULL is returned. A is a string and B is the pattern to be matched.
If A matches B, TRUE is returned. Otherwise, FALSE is returned. The percent sign (%)
and underscore (_) act as wildcard characters. A percent sign (%) matches zero or
more characters, and an underscore (_) matches any single character. To match an actual
percent sign (%) or underscore (_), use single quotation marks (') to escape the corresponding
character, such as '%' and '_'.

A RLIKE B  A is a string, and B is a string constant or regular expression. If A matches B, TRUE is returned. Otherwise, FALSE is returned. If B is empty, an error is reported, and the computation is stopped. If A or B is NULL, NULL is returned. 
A IN B 

BETWEEN AND  The expression is A [NOT] BETWEEN B AND C . If A, B, or C is empty, the returned result is empty. If A is greater than or equal
to B and less than or equal to C, TRUE is returned. Otherwise, FALSE is returned.

IS [NOT] DISTINCT FROM  The expression A IS DISTINCT FROM B is equivalent to the expression NOT(A<=>B), and the expression A IS NOT DISTINCT
FROM B is equivalent to the expression A<=>B.

The following are some statements where relational operators are used:
select * from user where user_id = '0001';
select * from user where user_name <> 'maggie';
select * from user where age > '50';
select * from user where birth_day >= '19800101 00:00:00';
select * from user where is_female is null;
select * from user where is_female is not null;
select * from user where user_id in (0001,0010);
select * from user where user_name like 'M%';
Before performing some relational computations, you need to convert the data types.
Otherwise, NULL may be returned. For more information, see Type conversions. For example, 20190216 00:00:01 is of the datetime type, whereas 20190216 is
of the string type. Before performing a comparison, you must convert the data type.
select cast('20190216 00:00:01' AS string) > '20190216';
select cast('20190216 00:00:02' AS datetime) > '20190216 00:00:01';
Values of the double type have precision differences. Therefore, we recommend that
you do not use the equal sign (=) to compare two values of the double type. You can
deduct a value of the double type from the other value of the double type and use
the absolute value of the difference to determine whether the two values are equal.
If the absolute value is negligible, the two values of the double type are considered
equal. For example:
abs(0.9999999999  1.0000000000) < 0.000000001
 0.9999999999 and 1.0000000000 have 10 decimal digits, whereas 0.000000001 has 9 decimal digits.
 0.9999999999 is considered equal to 1.0000000000.
Note
 ABS is a builtin function provided by MaxCompute to take the absolute value of its input. For more information, see ABS.
 Generally, a value of the double type in MaxCompute can retain 14 valid digits.
 If you compare a value of the string type with that of the bigint type, the values are automatically converted to those of the double type. This may cause loss of precision during comparison. In this case, you can use the cast (string as bigint) function to convert the value of the string type to that of the bigint type before comparison.
Arithmetic operators
Operator  Description 

A + B  If A or B is NULL, NULL is returned. Otherwise, the result of A + B is returned. 
A  B  If A or B is NULL, NULL is returned. Otherwise, the result of A  B is returned. 
A * B  If A or B is NULL, NULL is returned. Otherwise, the result of A * B is returned. 
A / B  If A or B is NULL, NULL is returned. Otherwise, the result of A / B is returned.
Note If A and B are of the bigint type, the return value is of the double type.

A % B  If A or B is NULL, NULL is returned. Otherwise, the result of A % B is returned. 
+A  A is returned. 
A  If A is NULL, NULL is returned. Otherwise, A is returned. 
The following is a statement where arithmetic operators are used:
select age+10, age10, age%10, age, age*age, age/10 from user;
Note
 You can only use values of the string, bigint, or double type to perform arithmetic computations. You cannot use values of the datatime or Boolean type to perform arithmetic computations.
 Values of the string type are implicitly converted to the double type before computations.
 If you use values of the bigint and double types to perform an arithmetic computation, the value of the bigint type is implicitly converted to that of the double type before the computation. The return value is of the double type.
 If both A and B are of the bigint type, the return value is of the double type after you perform the A / B computation. For other arithmetic computations, the return values are still of the bigint type.
Bitwise operators
Operator  Description 

A & B  The bitwise AND result of A and B is returned. For example, the result of 1 & 2 is 0, and the result of 1 & 3 is 1. The bitwise AND result of NULL and any value is NULL. Both A and B must be of the bigint type. 
A  B  The bitwise OR result of A and B is returned. For example, the result of 1  2 is 3, and the result of 1  3 is 3. The bitwise OR result of NULL and any value is NULL. Both A and B must be of the bigint type. 
A  B  This operator is used to join strings. For example, the expression a  b  c is equivalent to the expression concat(a, b, c). 
Note Bitwise computations do not support implicit type conversion. You can only use values
of the bigint type in bitwise computations.
Logical operators
Operator  Description 

A and B  TRUE and TRUE=TRUE 
TRUE and FALSE=FALSE  
FALSE and TRUE=FALSE  
FALSE and NULL=FALSE  
NULL and FALSE=FALSE  
TRUE and NULL=NULL  
NULL and TRUE=NULL  
NULL and NULL=NULL  
A or B  TRUE or TRUE=TRUE 
TRUE or FALSE=TRUE  
FALSE or TRUE=TRUE  
FALSE or NULL=NULL  
NULL or FALSE=NULL  
TRUE or NULL=TRUE  
NULL or TRUE=TRUE  
NULL or NULL=NULL  
NOT A  If A is NULL, NULL is returned. 
If A is TRUE, FALSE is returned.  
If A is FALSE, TRUE is returned. 
Note Logical computations do not support implicit type conversion. You can only use values
of the Boolean type in logical computations.