Expressions
Table of Contents
Expressions can be used in the field list of a Select, in Insert values, in Update assignments and in Where clauses.
- Numbers: 10, -6, 3.14159
- Strings: 'single quoted' or "double quoted". A doubled quote ('It''s') is not supported. A quote that follows a backslash does not end the string, but the backslash is kept: 'It's' returns It's.
- Null: null
| Operator | Meaning |
| + | Adds numbers. When either side is a string, the values are concatenated: 'Id: ' + 5 returns 'Id: 5'. |
| - * / | Subtraction, multiplication and division. |
| % | Remainder (modulo). |
| Bitwise exclusive-or. Use Pow for exponentiation. | |
| ( ) | Grouping, with standard order of operations. |
A null on either side of + makes the result null (null propagation). Concat skips nulls instead.
These are used in Where clauses and join ON conditions:
| Operator | Meaning |
| = | Equal (strings are compared without regard to case). |
| != | Not equal. The <> form is not supported. |
| > >= < <= | Numeric comparisons. |
| LIKE, NOT LIKE | Pattern matching, see Like. |
| BETWEEN, NOT BETWEEN | Range matching, see Between. |
Comparison operators can only be used in WHERE and ON clauses. Elsewhere, use the boolean functions such as IsEqual, IsGreater and IsLike, which return 1 or 0.
-- A line comment.
SELECT Id, Name FROM WordList:Language -- A trailing comment.
/* A block
comment. */Use Declare to define a variable for the rest of the script. Variables are referenced with an @ prefix. Applications using the client API pass parameters the same way, see Client.
DECLARE @Language = 2
SELECT Text FROM WordList:Word WHERE LanguageId = @LanguageEvery SELECT needs a FROM clause. To evaluate expressions that don't read any documents, select from the built-in Single schema, which contains exactly one document.
SELECT 10 + 10 as Twenty, 'Hello' + ' ' + 'World' as Greeting, Guid() as Id FROM SingleSQL :: IfNullNumeric
Returns the given number, or the default number when the given value is null.
SQL :: IIF
Short for "immediate if": returns whenTrue when the condition is true and whenFalse otherwise. The condition is usually one of the boolean functions such as [[IsEqual]] or [[IsGreater]].
SQL :: IndexOf
Returns the zero-based position of the first occurrence of textToFind in textToSearch, starting the search at offset. Returns -1 when it is not found.
SQL :: Insert
Insert creates new documents in a schema.
SQL :: IsBetween
Returns true (1) if the value is within the given range, including the range boundaries.
SQL :: IsDouble
Returns true (1) if the given value can be converted to a decimal number.
SQL :: IsEmpty
Returns true (1) if the given value is null or an empty string.
SQL :: IsEqual
Returns true (1) if the two given values are equal. The comparison is case-sensitive.
SQL :: IsGreater
Returns true (1) if the first value is greater than the second.
SQL :: IsGreaterOrEqual
Returns true (1) if the first value is greater than or equal to the second.