函式 - 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 傳回指定數值運算式的以 10 為基數的對數。
NUMBERBIN 此 NUMBERBIN 函數會計算四捨五入為指定大小倍數的輸入值。
PI 該 PI 函數返回 Pi 的常數值。
POWER 函數返回 POWER 指定表達式的值乘以給定的次數。
RADIANS 函式 RADIANS 會針對以度為單位指定的角度傳回對應的角度 (以弧度為單位)。
RAND 函數會 RAND 傳回從零到一的隨機產生的數值。
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 傳回目前的 UTC (世界標準時間) 日期和時間作為 ISO 8601 字串。
GETCURRENTDATETIMESTATIC 函 GETCURRENTDATETIMESTATIC 式會針對查詢中的所有專案傳回相同的 UTC 日期和時間值,作為 ISO 8601 字串。 這對於查詢結果之間的一致時間戳記很有用。
GETCURRENTTICKS 此 GETCURRENTTICKS 函式會傳回目前的 UTC 時間,作為自 0001-01-01T00:00:00.0000000Z 以來經過的 100 奈秒間隔 (刻度) 數目。
GETCURRENTTICKSSTATIC 此 GETCURRENTTICKSSTATIC 函式會針對相同分割區中的所有專案傳回靜態奈秒刻度值 (自 Unix 紀元以來的 100 奈秒間隔)。
GETCURRENTTIMESTAMP 該 GETCURRENTTIMESTAMP 函數返回自 Unix 紀元以來的當前時間戳記(以毫秒為單位)。
GETCURRENTTIMESTAMPSTATIC 此 GETCURRENTTIMESTAMPSTATIC 函數會針對相同分割區中的所有專案傳回靜態時間戳記值 (自 Unix 紀元以來的毫秒)。
TICKSTODATETIME 此 TICKSTODATETIME 函數會將指定的刻度數轉換為日期和時間值。
TIMESTAMPTODATETIME 此 TIMESTAMPTODATETIME 函數會將指定的時間戳記轉換為日期和時間值。

項目函式

Description
DOCUMENTID 此 DOCUMENTID 函式會傳回容器中指定專案的唯一檔識別碼。

全文搜索功能

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,808 到 9,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 Polygon 或 MultiPolygon 運算式的總面積。
ST_DISTANCE 此 ST_DISTANCE 函式會傳回兩個 GeoJSON Point、Polygon、MultiPolygon 或 LineString 運算式之間的距離。
ST_INTERSECTS 函式會 ST_INTERSECTS 傳回布林值,指出第一個引數中指定的 GeoJSON 物件是否與第二個引數中的 GeoJSON 物件相交。
ST_ISVALID 函 ST_ISVALID 式會傳回布林值,指出指定的 GeoJSON Point、Polygon、MultiPolygon 或 LineString 運算式是否有效。
ST_ISVALIDDETAILED ST_ISVALIDDETAILED如果指定的 GeoJSON Point、Polygon 或 LineString 運算式有效,則函式會傳回包含布林值的 JSON 值,如果無效,則會傳回原因。
ST_WITHIN 函式會 ST_WITHIN 傳回布林運算式,指出第一個引數中指定的 GeoJSON 物件是否在第二個引數中的 GeoJSON 物件內。
VECTORDISTANCE 此 VECTORDISTANCE 函數會傳回兩個指定向量之間的相似性分數。