Hazelcast SQL supports logical predicates, IS predicates, comparison operators, mathematical functions and operators,
string functions, and special functions.
 
Table 1. AND/OR Operators
| a | b | a AND b | a OR b | 
| TRUE
 | TRUE
 | TRUE
 | TRUE
 | 
| TRUE
 | FALSE
 | FALSE
 | TRUE
 | 
| TRUE
 | NULL
 | NULL
 | TRUE
 | 
| FALSE
 | FALSE
 | FALSE
 | FALSE
 | 
| FALSE
 | NULL
 | FALSE
 | NULL
 | 
| NULL
 | NULL
 | NULL
 | NULL
 | 
Table 2. NOT Operator
| a | NOT a | 
| TRUE
 | FALSE
 | 
| FALSE
 | TRUE
 | 
| NULL
 | NULL
 | 
Table 3. IS Operator
| Predicate | Description | Example | 
| IS TRUE
 | Evaluates to TRUEif the boolean argument isTRUE | age < 30 IS TRUE
 | 
| IS NOT TRUE
 | Evaluates to TRUEif the boolean argument isFALSEorNULL | age < 30 IS NOT TRUE
 | 
| IS FALSE
 | Evaluates to TRUEif the boolean argument isFALSE | age < 30 IS FALSE
 | 
| IS NOT FALSE
 | Evaluates to TRUEif the boolean argument isTRUEorNULL | age < 30 IS NOT FALSE
 | 
| IS NULL
 | Evaluates to TRUEif the argument isNULL | name IS NULL
 | 
| IS NOT NULL
 | Evaluates to TRUEif the argument is notNULL | name IS NOT NULL
 | 
Table 4. Comparison Operators
| Operator | Description | Example | 
| =
 | Equal to | age = 30
 | 
| !=or<>
 | Not equal to | age != 30orage <> 30
 | 
| <
 | Less than | age < 30
 | 
| >
 | Greater than | age > 30
 | 
| <=
 | Less than or equal to | age <= 30
 | 
| >=
 | Greater than or equal to | age >= 30
 | 
Table 5. Mathematical Operators
| Operator | Description | Example | 
| +
 | Addition | 5 + 2
 | 
| -
 | Subtraction | 5 - 2
 | 
| *
 | Multiplication | 5 * 2
 | 
| /
 | Division | 5 / 2
 | 
Table 6. Mathematical Functions
| Function | Description | Example | Result | 
| ABS(number)
 | Absolute value of the argument | ABS(-5)
 | 5
 | 
| CEIL(number)
 | The nearest integer greater than or equal to argument | CEIL(25.3)
 | 26
 | 
| DEGREES(double)
 | Convert radians to degrees | DEGREES(0.67)
 | 38.38817227376516
 | 
| EXP(number)
 | Exponential | EXP(2.5)
 | 12.182493960703473
 | 
| FLOOR(number)
 | The nearest integer less than or equal to argument | FLOOR(25.3)
 | 25
 | 
| LN(number)
 | Natural logarithm | LN(2.5)
 | 0.9162907318741551
 | 
| LOG10(number)
 | Base 10 logarithm | LOG(2.5)
 | 0.3979400086720376
 | 
| RADIANS(double)
 | Convert degrees to radians | RADIANS(38.39)
 | 0.6700318998406232
 | 
| RAND
 | Random value in the range [0.0; 1.0) | RAND()
 | 0.6324099982812553
 | 
| RAND(number)
 | Random value in the range [0.0; 1.0) using the given seed | RAND(10)
 | 0.7304302967434272
 | 
| ROUND(number)
 | Round to an integer | ROUND(34.5678)
 | 35
 | 
| ROUND(number, s integer)
 | Round to sdecimal places | ROUND(34.5678, 2)
 | 34.57
 | 
| SIGN(number)
 | Return -1, 0 or 1 for negative, zero or positive argument, respectively | SIGN(-25)
 | -1
 | 
| TRUNCATE(number)
 | Truncate to an integer | TRUNC(34.5678)
 | 34
 | 
| TRUNCATE(number, s integer)
 | Truncate to sdecimal places | TRUNC(34.5678, 2)
 | 34.56
 | 
Table 7. Trigonometric Functions
| Function | Description | 
| ACOS(double)
 | Inverse cosine | 
| ASIN(double)
 | Inverse sine | 
| ATAN(double)
 | Inverse tangent | 
| COS(double)
 | Cosine | 
| COT(double)
 | Cotangent | 
| SIN(double)
 | Sine | 
| TAN(double)
 | Tangent | 
Table 8. String Functions
| Function | Description | Example | Result | 
| string || string
 | Concatenate two strings | 'John' || ' ' || 'Doe'
 | John Doe
 | 
| ASCII(string)
 | ASCII code of the first character of the argument | ASCII('a')
 | 97
 | 
| BTRIM(string)
 | Equivalent to TRIM(BOTH ' ' FROM string) |  |  | 
| INITCAP(string)
 | Convert the first letter of each word to upper case, and the rest to lower case | INITCAP('john DOE')
 | John Doe
 | 
| LENGTH(string)
 | Length of the string | LENGTH('John Doe')
 | 8
 | 
| LIKE
 | Return TRUEif the value string follows the pattern | 'John Doe' LIKE '%Doe'
 | TRUE
 | 
| LIKE … ESCAPE
 | Return TRUEif the value string follows the pattern, escaping a special character in the pattern | 'text' LIKE '!_ext' ESCAPE '!'
 | FALSE
 | 
| LOWER(string)
 | Convert the string to lower case | LOWER('John Doe')
 | john doe
 | 
| LTRIM(string)
 | Equivalent to TRIM(LEADING ' ' FROM string) |  |  | 
| RTRIM(string)
 | Equivalent to TRIM(TRAILING ' ' FROM string) |  |  | 
| SUBSTRING(string FROM integer)
 | Extract substring starting with the given position | SUBSTRING('John Doe' FROM 6)
 | Doe
 | 
| SUBSTRING(string FROM integer FOR integer)
 | Extract substring starting with the given position for the given length | SUBSTRING('John Doe' FROM 1 FOR 4)
 | John
 | 
| TRIM([LEADING|TRAILING|BOTH] [characters FROM] string)
 | Remove characters(a space by default) from the start/end/both ends of the string | TRIM(BOTH '[]' FROM '[John Doe]')
 | John Doe
 | 
| TRIM(characters FROM string)
 | Equivalent to TRIM(BOTH characters FROM string) | TRIM('[]' FROM '[John Doe]')
 | John Doe
 | 
| TRIM(string)
 | Equivalent to TRIM(BOTH ' ' FROM string) | TRIM(' John Doe ')
 | John Doe
 | 
| UPPER(string)
 | Convert the string to upper case | UPPER('John Doe')
 | JOHN DOE
 | 
Table 9. Special Functions
| Function | Description | Example | 
| CAST(value AS type)
 | Convert the value to the given type | CAST(age AS VARCHAR)
 |