查询语言包括一系列系统函数,这些函数内置于查询语言中,旨在处理各种常见任务。
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 函数返回两个指定向量之间的相似性分数。 |