# Operators

Case Insensitivity

Operator names are case-insensitive.

Logical Operators

Logical operators in precedence order: `NOT`, `AND`, `OR`.

Comparison Operators

Comparison operators: `=`, `>`, `>=`, `<`, `<=`, `<>` (not equal).

These operators can compare only values of comparable types. (Exact numeric values and approximate numerical values are comparable types.) Attempting to compare incomparable types yields `false`. If either value in a comparison evaluates to `NULL`, then the result is unknown (in SQL 3-valued logic).

Comparison of string values is restricted to `=` and `<>`. Two strings are equal if and only if they contain the same sequence of characters.

Comparison of boolean values is restricted to `=` and `<>`.

Arithmetic Operators

Arithmetic operators in precedence order:

- `+`, `-` (unary)
- `*`, `/` (multiplication and division)
- `+`, `-` (addition and subtraction)

Arithmetic operations obey numeric promotion rules of the Java programming language.

Between Operator

arithmetic-expr1`[NOT] BETWEEN` arithmetic-expr2 `AND` arithmetic-expr3

The `BETWEEN` comparison operator includes its endpoints. For example:

- `age BETWEEN 5 AND 9` is equivalent to `age >= 5 AND age <= 9`
- `age NOT BETWEEN 5 AND 9` is equivalent to `age < 5 OR age > 9`

String Set Membership

identifier`[NOT] IN (`string-literal1`,` string-literal2`,` ...`)`

The identifier must evaluate to either a string or `NULL`. If it is `NULL`, then the value of this expression is unknown. You can use a maximum of 32,767 string-literals in the string set.

Pattern Matching

identifier`[NOT] LIKE` pattern-value`[ESCAPE` escape-character`]`

The identifier must evaluate to a string.

The pattern-value is a string literal, in which some characters bear special meaning:

- `_` (underscore) can match any single character.
- `%` (percent) can match any sequence of zero or more characters.
- escape-character preceding either of the special characters changes them into ordinary characters (which match only themselves).

Null Header or Property

identifier `IS NULL`

This comparison operator tests whether a message header is null, or a message property is absent.

identifier `IS NOT NULL`

This comparison operator tests whether a message header or message property is non-null.

Copyright © Cloud Software Group, Inc. All rights reserved.