Operator | Description | Standard |
p + q | Addition/concatenation. For numeric values (integer, double, and money data types), this simply adds the two values together and results in a similar value. For string values, this concatenates the two strings together. This operator is undefined for datetime values. | Numeric: ANSI. Strings: Sybase/MSSQL. |
p - q | Subtraction. Subtracts one integer, double, or money data type from another. This operator is undefined for datetime values. For strings, this is the reverse of concatenation: "abc" - "c" would yield "ab". Subtracting strings in this way can be particularly useful when a concatenation expression requires separators between elements, but not after the last element, as in: sum(:string_field + ',') - ',' | Numeric: ANSI. Strings: Centrallix. |
p * q | Multiplication. Multiplies one integer, double, or money data type by another. This operator is also defined for multiplying a string value by an integer value - the result is the repeated concatenation of the string (p) a number (q) times. | Numeric: ANSI. Strings: Centrallix. |
p / q | Division. Divides one integer, double, or money data type by another. This operator is not defined for strings and datetime values. | ANSI |
NOT p | Boolean negation. Boolean values in Centrallix are treated as integers; this operator returns 0 if p is not 0, and returns 1 if p is 0. Alternatively, returns FALSE if p is TRUE, and returns TRUE if p is FALSE. |
p AND q | Boolean AND. Returns TRUE (1) if both p and q are not FALSE (0). Otherwise returns FALSE (0). | ANSI, except Centrallix allows treating a boolean as a numeric value. |
p OR q | Boolean OR. Returns TRUE (1) if either p or q is not FALSE (0). Otherwise returns FALSE (0). | ANSI |
p IS NULL | Returns TRUE (1) if p is NULL, otherwise returns FALSE. | ANSI |
p IS NOT NULL | Returns TRUE (1) if p isn't NULL, otherwise returns FALSE. | ANSI |
p = q | Equality comparison. Also can be written as "p == q". Results in TRUE (1) if p and q have the same value. If either p or q is NULL, this returns FALSE (0). Even if both p and q are NULL, this returns FALSE (0). | ANSI (=). Centrallix (==). |
p != q | Inequality comparison. Also can be written as "p <> q". Results in TRUE (1) only if p and q have different values. If either p or q are NULL (or if both are NULL), results in FALSE(0). | ANSI (!=). Centrallix(<>). |
p > q | Greater-than. Results in TRUE (1) only if p is greater than q and both p and q are not NULL. When comparing strings, the strings are compared on a binary basis. | ANSI |
p >= q | Greater than or equals. Also can be written "p !< q" (p is not less than q). Results in TRUE only if p is greater than or equal to q and both p and q are not NULL. | ANSI (>=). Centrallix (!<). |
p < q | Less-than. Results in TRUE (1) only if p is less than q and both p and q are not NULL. | ANSI |
p <= q | Less than or equals. Also can be written "p !> q" (p is not greater than q). Results in TRUE only if p is less than or equal to q and both p and q are not NULL. | ANSI (<=). Centrallix (!>). |
p *= q | An equality comparison operator for performing an outer join in a WHERE clause. The "mandatory" table's attribute in the outer join should be on the * side of the *= (or =*) operator. For example :tbl:key *= :codetbl:key means that rows from 'tbl' should be returned even if they don't have matching rows from 'codetbl'. | Sybase/MSSQL |
:p | Returns the value of the attribute p, in the "current" object (depends on the context). | Centrallix |
:p:q | Returns the value of q, an attribute of the object p. | Centrallix |
::p | Returns the value of the attribute p in the "parent" object (what object is the parent object depends on the context). | Centrallix |