Functions - Cosmos DB 中的查询语言(在 Azure 和 Fabric 中)

查询语言包括一系列系统函数,这些函数内置于查询语言中,旨在处理各种常见任务。

Functions

下面是查询语言当前支持的函数列表:

数学函数

Description
ABS ABS 函数计算指定数值表达式的绝对值(正值)。
ACOS ACOS 函数计算指定数值的三角反余弦值。 反余弦值是角度(以弧度为单位),其余弦值是指定的数值表达式。
ASIN ASIN 函数计算指定数值的三角反正弦值。 反正弦值是角度(以弧度为单位),其正弦是指定的数值表达式。
ATAN ATAN 函数计算指定数值的三角反正切值。 反正切是角度(以弧度表示),其正切值是指定的数值表达式。
ATN2 ATN2 函数计算以弧度表示的反正切值的 y/x主体值。
CEILING CEILING 函数计算大于或等于指定数值表达式的最小整数值。
COS COS 函数以弧度计算指定角度的三角余弦值。
COT COT 函数以弧度计算指定角度的三角余切值。
DEGREES DEGREES 函数计算以弧度为单位指定角度的相应角度。
EXP EXP 函数计算指定数值表达式的指数值。
FLOOR FLOOR 函数计算小于或等于指定数值表达式的最大整数。
INTADD INTADD 函数返回两个整数值的总和。
INTBITAND INTBITAND 函数使用非独占 AND 运算符返回每个作数位的比较。
INTBITLEFTSHIFT INTBITLEFTSHIFT 函数返回整数值的按位左移运算的结果。
INTBITNOT INTBITNOT 函数返回整数值的按位 NOT 运算的结果。
INTBITOR INTBITOR 函数返回两个整数值的按位非独占 OR 运算的结果。
INTBITRIGHTSHIFT INTBITRIGHTSHIFT 函数返回整数值的按位右移运算的结果。
INTBITXOR INTBITXOR 函数返回两个整数值的按位排他 OR 运算的结果。
INTDIV INTDIV 函数返回将第一个整数值除以第二个整数值的结果。
INTMOD INTMOD 函数返回将第一个整数值除以第二个整数值的余数。
INTMUL INTMUL 函数返回两个整数值的乘积。
INTSUB INTSUB 函数返回从第一个中减去第二个整数值的结果。
LOG LOG 函数返回指定数值表达式的自然对数。
LOG10 LOG10 函数返回指定数值表达式的 base-10 对数。
NUMBERBIN NUMBERBIN 函数计算舍入为指定大小的倍数的输入值。
PI PI 函数返回 Pi 的常量值。
POWER POWER 函数返回指定表达式的值,并按给定次数单独倍数。
RADIANS RADIANS 函数返回以度为单位指定角度的相应角度(以弧度为单位)。
RAND RAND 函数将随机生成的数值从零返回为 1。
ROUND ROUND 函数返回舍入到最接近的整数值的数值。
SIGN SIGN 函数返回指定数值表达式的正数(+1)、零(0)或负号(-1)。
SIN SIN 函数以弧度返回指定角度的三角正弦值。
SQRT SQRT 函数返回指定数值的平方根。
SQUARE SQUARE 函数返回指定数值的平方。
TAN TAN 函数以弧度返回指定角度的三角正切值。
TRUNC TRUNC 函数返回截断到最接近整数值的数值。

数组函数

Description
ARRAY_CONCAT ARRAY_CONCAT 函数返回一个数组,该数组是连接两个或多个数组值的结果。
ARRAY_CONTAINS_ALL ARRAY_CONTAINS_ALL 函数返回一个布尔值,该值指示数组是否包含所有指定值。
ARRAY_CONTAINS_ANY ARRAY_CONTAINS_ANY 函数返回一个布尔值,该值指示数组是否包含任何指定值。
ARRAY_CONTAINS ARRAY_CONTAINS 函数返回一个布尔值,该值指示数组是否包含指定的值。 可以使用函数中的布尔表达式来检查对象的部分或完全匹配。
ARRAY_LENGTH ARRAY_LENGTH 函数返回指定数组表达式中的元素数。
ARRAY_SLICE ARRAY_SLICE 函数使用指定的索引和长度返回数组表达式的子集。
CHOOSE CHOOSE 函数在列表的指定索引处返回表达式,如果索引超出列表的边界,则返回 Undefined。
OBJECTTOARRAY OBJECTTOARRAY 函数将 JSON 对象中的字段/值对转换为 JSON 数组。
SETINTERSECT SETINTERSECT 函数返回两个输入数组中不包含重复项的表达式集。
SETUNION SETUNION 函数返回一组表达式,其中包含来自两个收集集的所有表达式,没有重复项。

聚合函数

Description
AVG AVG 函数计算表达式中值的平均值。
COUNT COUNT 函数返回表达式中值的计数。
MAX MAX 函数返回指定表达式的最大值。
MIN MIN 函数返回指定表达式的最小值。
SUM SUM 函数计算表达式中值的总和。

字符串函数

Description
CONCAT CONCAT 函数返回一个字符串,该字符串是连接文档中多个字段的结果。
CONTAINS CONTAINS 函数返回一个布尔值,该值指示第一个字符串表达式是否包含第二个字符串表达式。
ENDSWITH ENDSWITH 函数返回一个布尔值,该值指示字符串是否以指定的后缀结尾。 (可选)比较不区分大小写。
INDEX-OF INDEX_OF 函数返回字符串的第一个匹配项的索引。
LEFT LEFT 函数返回字符串的左侧部分,最多返回指定的字符数。
LENGTH LENGTH 函数返回指定字符串表达式中的字符数。
LOWER 函数 LOWER 在将大写字符数据转换为小写后返回字符串表达式。
LTRIM LTRIM 函数在删除前导空格或指定字符后返回字符串表达式。
REGEXMATCH REGEXMATCH 函数返回一个布尔值,该值指示提供的字符串是否与指定的正则表达式匹配。 正则表达式是一种简洁灵活的表示法,用于查找文本模式。
REPLACE REPLACE 函数返回替换指定字符串的所有匹配项的字符串。
REPLICATE REPLICATE 函数返回重复特定次数的字符串值。
REVERSE REVERSE 函数返回字符串值的反向顺序。
RIGHT RIGHT 函数返回字符串的右侧部分,最多返回指定的字符数。
RTRIM RTRIM 函数在删除尾随空格或指定字符后返回字符串表达式。
STARTSWITH STARTSWITH 函数返回一个布尔值,该值指示第一个字符串表达式是否以第二个字符串表达式开头。
STRINGEQUALS STRINGEQUALS 函数返回一个布尔值,该值指示第一个字符串表达式是否与第二个字符串表达式匹配。
STRINGJOIN STRINGJOIN 函数返回一个字符串,该字符串使用每个元素之间的指定分隔符连接指定数组的元素。
STRINGSPLIT STRINGSPLIT 函数返回从指定分隔符分隔源字符串获得的子字符串数组。
STRINGTOARRAY STRINGTOARRAY 函数将字符串表达式转换为数组。
STRINGTOBOOLEAN STRINGTOBOOLEAN 函数将字符串表达式转换为布尔值。
SUBSTRING SUBSTRING 函数返回从指定位置和指定长度或字符串末尾开始的字符串表达式的一部分。
TOSTRING TOSTRING 函数返回值的字符串表示形式。
TRIM TRIM 函数在删除前导和尾随空格或自定义字符后返回字符串表达式。
UPPER UPPER 函数在将小写字符数据转换为大写后返回字符串表达式。

日期和时间函数

Description
DATETIMEADD DATETIMEADD 函数返回一个日期和时间字符串值,该值是向提供的日期和时间字符串添加指定数字值的结果。
DATETIMEBIN DATETIMEBIN 函数返回日期和时间字符串值,该值是提供日期和时间字符串的一部分的装箱(或舍入)的结果。
DATETIMEDIFF DATETIMEDIFF 函数返回两个日期和时间值之间的指定日期和时间部分的有符号整数。
DATETIMEFROMPARTS DATETIMEFROMPARTS 函数返回从各种日期和时间部分的输入数值构造的日期和时间字符串值。
DATETIMEPART DATETIMEPART 函数返回所提供日期和时间的指定日期和时间部分的值。
DATETIMETOTICKS DATETIMETOTICKS 函数将指定的 DateTime 转换为时钟周期。 单个刻度表示 100 纳秒或 0.0000001 秒。
DATETIMETOTIMESTAMP DATETIMETOTIMESTAMP 函数将指定的日期和时间转换为数字时间戳。 时间戳是一个有符号数字整数,用于度量自 Unix 纪元以来的毫秒数。
GETCURRENTDATETIME GETCURRENTDATETIME 函数以 ISO 8601 字符串的形式返回当前 UTC(协调世界时)日期和时间。
GETCURRENTDATETIMESTATIC GETCURRENTDATETIMESTATIC 函数为查询中的所有项返回相同的 UTC 日期和时间值,作为 ISO 8601 字符串。 这对于跨查询结果的一致时间戳非常有用。
GETCURRENTTICKS GETCURRENTTICKS 函数返回当前 UTC 时间,作为自 0001-01-01-01T00:00:00.00000000Z 以来经过的 100 纳秒间隔(时钟周期)的数目。
GETCURRENTTICKSSTATIC GETCURRENTTICKSSTATIC 函数为同一分区中的所有项返回静态纳秒时钟周期值(自 Unix 纪元以来的 100 纳秒间隔)。
GETCURRENTTIMESTAMP GETCURRENTTIMESTAMP 函数返回自 Unix 纪元以来的当前时间戳(以毫秒为单位)。
GETCURRENTTIMESTAMPSTATIC GETCURRENTTIMESTAMPSTATIC 函数为同一分区中的所有项返回静态时间戳值(自 Unix 纪元以来的毫秒)。
TICKSTODATETIME TICKSTODATETIME 函数将指定的时钟周期数转换为日期和时间值。
TIMESTAMPTODATETIME TIMESTAMPTODATETIME 函数将指定的时间戳转换为日期和时间值。

项函数

Description
DOCUMENTID DOCUMENTID 函数返回容器中给定项的唯一文档 ID。

全文搜索函数

Description
FULLTEXTCONTAINS FULLTEXTCONTAINS 函数返回一个布尔值,该值指示关键字字符串表达式是否包含在指定的属性路径中。
FULLTEXTCONTAINSALL FULLTEXTCONTAINSALL 函数返回一个布尔值,该值指示是否所有提供的字符串表达式都包含在指定的属性路径中。
FULLTEXTCONTAINSANY FULLTEXTCONTAINSANY 函数返回一个布尔值,该值指示提供的任何字符串表达式是否包含在指定的属性路径中。
FULLTEXTSCORE FULLTEXTSCORE 函数返回一个 BM25 分数值,该值只能在子句中使用 ORDER BY RANK ,以对结果进行从最高相关性到指定字词的最低相关性。
RRF RRF 函数通过组合其他函数提供的两个或多个分数来返回融合分数。

条件函数

Description
IIF IIF 函数返回两个值之一,具体取决于布尔表达式的计算结果为 true 还是 false。

类型检查函数

Description
IS_ARRAY IS_ARRAY 函数返回一个布尔值,该值指示指定表达式的类型是否为数组。
IS_BOOL IS_BOOL 函数返回一个布尔值,该值指示指定表达式的类型是否为布尔值。
IS_DEFINED IS_DEFINED 函数返回一个布尔值,该值指示属性是否已赋值。
IS_FINITE_NUMBER IS_FINITE_NUMBER 函数返回一个布尔值,该值指示某个数字是否为有限数(而不是无限数)。
IS_INTEGER IS_INTEGER 函数返回一个布尔值,该值指示数字是否为 64 位有符号整数。 64 位有符号整数的范围从 .-9,223,372,036,854,775,8089,223,372,036,854,775,807 有关详细信息,请参阅 __int64
IS_NULL IS_NULL 函数返回一个布尔值,该值指示指定表达式的类型是否为 null
IS_NUMBER IS_NUMBER 函数返回一个布尔值,该值指示指定表达式的类型是否为数字。
IS_OBJECT IS_OBJECT 函数返回一个布尔值,该值指示指定表达式的类型是否为 JSON 对象。
IS_PRIMITIVE IS_PRIMITIVE 函数返回一个布尔值,该值指示指定表达式的类型是否为基元(字符串、布尔值、数值或 null)。
IS_STRING IS_STRING 函数返回一个布尔值,该值指示指定表达式的类型是否为字符串。
STRINGTONULL STRINGTONULL 函数将字符串表达式转换为 null.
STRINGTONUMBER STRINGTONUMBER 函数将字符串表达式转换为数字。
STRINGTOOBJECT STRINGTOOBJECT 函数将字符串表达式转换为对象。

空间函数

Description
ST_AREA ST_AREA 函数返回 GeoJSON 多边形或 MultiPolygon 表达式的总面积。
ST_DISTANCE ST_DISTANCE 函数返回两个 GeoJSON 点、多边形、MultiPolygon 或 LineString 表达式之间的距离。
ST_INTERSECTS ST_INTERSECTS 函数返回一个布尔值,该值指示在第一个参数中指定的 GeoJSON 对象是否与第二个参数中的 GeoJSON 对象相交。
ST_ISVALID ST_ISVALID 函数返回一个布尔值,该值指示指定的 GeoJSON 点、多边形、MultiPolygon 或 LineString 表达式是否有效。
ST_ISVALIDDETAILED 如果指定的 GeoJSON 点、多边形或 LineString 表达式有效且无效,则 ST_ISVALIDDETAILED 函数将返回包含布尔值的 JSON 值。
ST_WITHIN ST_WITHIN 函数返回一个布尔表达式,该表达式指示在第一个参数中指定的 GeoJSON 对象是否在第二个参数中的 GeoJSON 对象内。
VECTORDISTANCE VECTORDISTANCE 函数返回两个指定向量之间的相似性分数。