diff --git a/core-spec/expression_language.md b/core-spec/expression_language.md index 42299977..e8be429e 100644 --- a/core-spec/expression_language.md +++ b/core-spec/expression_language.md @@ -389,6 +389,7 @@ is not guaranteed identical across engines. **Fractional seconds** are available everywhere but the token and precision differ (Oracle `FF1`–`FF9`, `strftime` `%f`, Java `S`…`SSSSSS`); treat sub-second formatting as a dialect extension. + --- ## String Functions @@ -398,7 +399,7 @@ a dialect extension. | Function | Syntax | Description | | :---- | :---- | :---- | | `CONCAT` | `CONCAT(str1, str2, ...)` | Concatenate strings | -| `||` | `str1 || str2` | Concatenation operator | +| `\|\|` | `str1 \|\| str2` | Concatenation operator | | `LENGTH` | `LENGTH(str)` | String length in characters | | `LOWER` | `LOWER(str)` | Convert to lowercase | | `UPPER` | `UPPER(str)` | Convert to uppercase | @@ -664,7 +665,7 @@ expression: | :---- | :---- | :---- | :---- | :---- | :---- | | Date truncation | `DATE_TRUNC('month', d)` | `DATE_TRUNC('month', d)` | `DATE_TRUNC(d, MONTH)` | `DATE_TRUNC('month', d)` | `DATE_TRUNC('month', d)` | | Date add | `DATEADD(day, 7, d)` | `DATEADD(day, 7, d)` | `DATE_ADD(d, INTERVAL 7 DAY)` | `DATE_ADD(d, 7)` | `d + INTERVAL '7 days'` | -| String concat | `CONCAT(a, b)` | `CONCAT(a, b)` | `CONCAT(a, b)` | `CONCAT(a, b)` | `a || b` | +| String concat | `CONCAT(a, b)` | `CONCAT(a, b)` | `CONCAT(a, b)` | `CONCAT(a, b)` | `a \|\| b` | | Null coalesce | `COALESCE(a, b)` | `COALESCE(a, b)` or `NVL(a, b)` | `COALESCE(a, b)` or `IFNULL(a, b)` | `COALESCE(a, b)` | `COALESCE(a, b)` | | Current timestamp | `CURRENT_TIMESTAMP` | `CURRENT_TIMESTAMP()` | `CURRENT_TIMESTAMP()` | `CURRENT_TIMESTAMP()` | `CURRENT_TIMESTAMP` | | Substring | `SUBSTRING(s, start, len)` | `SUBSTR(s, start, len)` | `SUBSTR(s, start, len)` | `SUBSTRING(s, start, len)` | `SUBSTRING(s, start, len)` | @@ -674,6 +675,7 @@ expression: ### Dialect-Specific Extensions Vendors may expose their own feature through extensions, however the default for Ossie should be to pass unknown values through.: + --- ## Cross-Reference: Tool Mappings