# SQL functions and operators

ReOrc's semantic layer translates user-defined queries into the SQL dialect of your underlying data source. However, due to differences in SQL syntax and the need for query transformation, certain SQL functions and operators may not be fully supported—particularly within query fragments that perform `SELECT` operations directly from tables.

To ensure compatibility and consistent behavior, ReOrc provides a defined set of supported SQL functions and expressions. Below is the list of currently supported functions:

<table data-header-hidden><thead><tr><th width="170.94921875" valign="top">Function</th><th width="122.10546875">Type<select><option value="zhDmiw8qTFlI" label="Comparison" color="blue"></option><option value="As5AflgHCCXp" label="Mathematical functions" color="blue"></option><option value="xV8dkaluYUBl" label="Trigonometric functions" color="blue"></option><option value="YiV5ITDu2MkB" label="String functions" color="blue"></option><option value="Iw4kcwlUsxJs" label="Pattern matching" color="blue"></option><option value="bycEbco7IBY3" label="Data type" color="blue"></option><option value="MkZSpUEZz38X" label="Date/time functions" color="blue"></option><option value="Lhk8pDQ80hoZ" label="Conditional expressions" color="blue"></option><option value="GNRJRYMRsFGH" label="Aggregate functions" color="blue"></option><option value="OF7ZAxUos2zj" label="Row and array" color="blue"></option></select></th><th valign="top">Description</th></tr></thead><tbody><tr><td valign="top">&#x3C;</td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is less than the second</td></tr><tr><td valign="top">></td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is greater than the second</td></tr><tr><td valign="top">&#x3C;=</td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is less than or equal to the second</td></tr><tr><td valign="top">>=</td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is greater than or equal to the second</td></tr><tr><td valign="top">=</td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is equal to the second</td></tr><tr><td valign="top">&#x3C;> or !=</td><td><span data-option="zhDmiw8qTFlI">Comparison</span></td><td valign="top">Returns TRUE if the first value is not equal to the second</td></tr><tr><td valign="top">ABS</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Absolute value</td></tr><tr><td valign="top">CEIL</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Nearest integer greater than or equal to argument</td></tr><tr><td valign="top">DEGREES</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Converts radians to degrees</td></tr><tr><td valign="top">EXP</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Exponential (e raised to the given power)</td></tr><tr><td valign="top">FLOOR</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Nearest integer less than or equal to argument</td></tr><tr><td valign="top">LN</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Natural logarithm</td></tr><tr><td valign="top">LOG</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Base 10 logarithm</td></tr><tr><td valign="top">LOG10</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Base 10 logarithm (same as LOG)</td></tr><tr><td valign="top">PI</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Approximate value of π</td></tr><tr><td valign="top">POWER</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">a raised to the power of b</td></tr><tr><td valign="top">RADIANS</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Converts degrees to radians</td></tr><tr><td valign="top">ROUND</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Rounds v to s decimal places</td></tr><tr><td valign="top">SIGN</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Sign of the argument (-1, 0, or +1)</td></tr><tr><td valign="top">SQRT</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Square root</td></tr><tr><td valign="top">TRUNC</td><td><span data-option="As5AflgHCCXp">Mathematical functions</span></td><td valign="top">Truncates to integer (towards zero)</td></tr><tr><td valign="top">ACOS</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Inverse cosine, result in radians</td></tr><tr><td valign="top">ASIN</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Inverse sine, result in radians</td></tr><tr><td valign="top">ATAN</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Inverse tangent, result in radians</td></tr><tr><td valign="top">ATAN2</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Inverse tangent of y/x, result in radians</td></tr><tr><td valign="top">COS</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Cosine, argument in radians</td></tr><tr><td valign="top">COT</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Cotangent, argument in radians</td></tr><tr><td valign="top">SIN</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Sine, argument in radians</td></tr><tr><td valign="top">TAN</td><td><span data-option="xV8dkaluYUBl">Trigonometric functions</span></td><td valign="top">Tangent, argument in radians</td></tr><tr><td valign="top">||</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Concatenates two strings</td></tr><tr><td valign="top">BTRIM</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Removes characters from start and end of string</td></tr><tr><td valign="top">BIT_LENGTH</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns number of bits in the string</td></tr><tr><td valign="top">CHAR_LENGTH</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns number of characters in the string</td></tr><tr><td valign="top">LOWER</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Converts the string to all lower case</td></tr><tr><td valign="top">LTRIM</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Removes characters from the start of string</td></tr><tr><td valign="top">OCTET_LENGTH</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns number of bytes in the string</td></tr><tr><td valign="top">POSITION</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns index of substring within string</td></tr><tr><td valign="top">RTRIM</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Removes characters from the end of string</td></tr><tr><td valign="top">SUBSTRING</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Extracts the substring of string</td></tr><tr><td valign="top">TRIM</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Removes characters from start, end, or both ends</td></tr><tr><td valign="top">UPPER</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Converts the string to all upper case</td></tr><tr><td valign="top">ASCII</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns the numeric code of the first character</td></tr><tr><td valign="top">CONCAT</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Concatenates all arguments</td></tr><tr><td valign="top">LEFT</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns first n characters (or all but last ABS(n))</td></tr><tr><td valign="top">REPEAT</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Repeats string the specified number of times</td></tr><tr><td valign="top">REPLACE</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Replaces all occurrences of a substring</td></tr><tr><td valign="top">RIGHT</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns last n characters (or all but first ABS(n))</td></tr><tr><td valign="top">STARTS_WITH</td><td><span data-option="YiV5ITDu2MkB">String functions</span></td><td valign="top">Returns TRUE if string starts with prefix</td></tr><tr><td valign="top">LIKE</td><td><span data-option="Iw4kcwlUsxJs">Pattern matching</span></td><td valign="top">Returns TRUE if the string matches the pattern</td></tr><tr><td valign="top">REGEXP_SUBSTR</td><td><span data-option="Iw4kcwlUsxJs">Pattern matching</span></td><td valign="top">Returns substring matching regex pattern</td></tr><tr><td valign="top">TO_CHAR</td><td><span data-option="bycEbco7IBY3">Data type</span></td><td valign="top">Converts timestamp to string by format</td></tr><tr><td valign="top">DATE_ADD</td><td><span data-option="MkZSpUEZz38X">Date/time functions</span></td><td valign="top">Adds interval to a timestamp</td></tr><tr><td valign="top">DATE_TRUNC</td><td><span data-option="MkZSpUEZz38X">Date/time functions</span></td><td valign="top">Truncates timestamp to specified precision</td></tr><tr><td valign="top">DATEDIFF</td><td><span data-option="MkZSpUEZz38X">Date/time functions</span></td><td valign="top">Difference between date parts of expressions</td></tr><tr><td valign="top">EXTRACT</td><td><span data-option="Iw4kcwlUsxJs">Pattern matching</span></td><td valign="top">Retrieves subfields like year or hour</td></tr><tr><td valign="top">LOCALTIMESTAMP</td><td><span data-option="MkZSpUEZz38X">Date/time functions</span></td><td valign="top">Returns current date and time without time zone</td></tr><tr><td valign="top">NOW</td><td><span data-option="MkZSpUEZz38X">Date/time functions</span></td><td valign="top">Returns current date and time with time zone</td></tr><tr><td valign="top">CASE</td><td><span data-option="Lhk8pDQ80hoZ">Conditional expressions</span></td><td valign="top">Generic conditional expression</td></tr><tr><td valign="top">COALESCE</td><td><span data-option="Lhk8pDQ80hoZ">Conditional expressions</span></td><td valign="top">Returns the first non-NULL argument</td></tr><tr><td valign="top">NULLIF</td><td><span data-option="Lhk8pDQ80hoZ">Conditional expressions</span></td><td valign="top">Returns NULL if arguments are equal</td></tr><tr><td valign="top">GREATEST</td><td><span data-option="Lhk8pDQ80hoZ">Conditional expressions</span></td><td valign="top">Selects the largest value</td></tr><tr><td valign="top">LEAST</td><td><span data-option="Lhk8pDQ80hoZ">Conditional expressions</span></td><td valign="top">Selects the smallest value</td></tr><tr><td valign="top">AVG</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Average of non-NULL input values</td></tr><tr><td valign="top">COUNT</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Counts non-NULL input rows</td></tr><tr><td valign="top">COUNT(DISTINCT)</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Counts unique non-NULL input values</td></tr><tr><td valign="top">MAX</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Maximum of non-NULL input values</td></tr><tr><td valign="top">MIN</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Minimum of non-NULL input values</td></tr><tr><td valign="top">SUM</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Sum of non-NULL input values</td></tr><tr><td valign="top">MEASURE</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Works with measures of any type</td></tr><tr><td valign="top">COVAR_POP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Population covariance</td></tr><tr><td valign="top">COVAR_SAMP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Sample covariance</td></tr><tr><td valign="top">STDDEV_POP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Population standard deviation</td></tr><tr><td valign="top">STDDEV_SAMP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Sample standard deviation</td></tr><tr><td valign="top">VAR_POP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Population variance</td></tr><tr><td valign="top">VAR_SAMP</td><td><span data-option="GNRJRYMRsFGH">Aggregate functions</span></td><td valign="top">Sample variance</td></tr><tr><td valign="top">IN</td><td><span data-option="OF7ZAxUos2zj">Row and array</span></td><td valign="top">TRUE if value matches any from a list</td></tr><tr><td valign="top">NOT IN</td><td><span data-option="OF7ZAxUos2zj">Row and array</span></td><td valign="top">TRUE if value matches none from a list</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.reorc.com/semantic-modeling/cube/custom-measure/sql-functions-and-operators.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
