內建函式

適用於:檢查標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

本文提供字串和二進位類型、數值純量、匯總、windows、陣列、地圖、日期和時間戳、轉型、CSV 數據、JSON 數據、XPath 操作和其他函式之內建運算符和函式的連結和描述。

另請參閱:

運算符和述詞

如需如何相互剖析運算符的相關信息,請參閱 運算符優先順序

運算子 語法 描述
expr1 & expr2 傳回和expr2expr1位 AND。
and expr1 and expr2 傳回和expr2expr1邏輯AND。
* multiplier * multiplicand multiplier傳回乘以 multiplicand
!= expr1 != expr2 如果 expr1 不等於 expr2,則 false 傳回 true,否則傳回 。
! !expr 傳回布爾表達式的邏輯 NOT
between expr1 [not] between expr2 and expr2 測試是否 expr1 大於或等於 expr2 ,且小於或等於 expr3
[ ] arrayExpr [ indexExpr ] indexExpr傳回 ARRAY 的 nd 元素arrayExpr
[ ] mapExpr [ keyExpr ] 傳回 MAP 的值keyExprmapExpr
^ expr1 ^ expr2 傳回和expr2expr1位排除OR (XOR)
: jsonStr : jsonPath 傳回從擷取的 jsonStr欄位。
:: expr :: type 將值 expr 轉換成目標資料類型 type
div divisor div dividend 傳回 除法dividenddivisor整數部分。
. mapExpr . keyIdentifier keyIdentifierMAP回值。
. structExpr . fieldIdentifier fieldIdentifierSTRUCT回欄位。
== expr1 == expr2 如果 expr1 等於 expr2,則falsetrue回 ,否則傳回 。
= expr1 = expr2 如果 expr1 等於 expr2,則falsetrue回 ,否則傳回 。
>= expr1 >= expr2 如果 expr1 大於或等於 expr2,則falsetrue回 ,否則傳回 。
> expr1 > expr2 如果 expr1 大於 expr2,則falsetrue回 ,否則傳回 。
exists exists(query) 如果 query 傳回至少一個數據列,則傳回 true,否則傳回 false。
ilike str [not] ilike (pattern[ESCAPE escape]) 如果 strpatternescape不區分大小寫相符,則傳回 true。
ilike str [not] ilike {ANY|SOME|ALL}([pattern[, ...]]) 如果 str 不符合任何/所有模式不區分大小寫,則傳回 true。
elem [not] in (expr1[, ...]) 如果 elem 不等於任何 exprN,則傳true回 。
elem [not] in (query) 如果 elem 中不等於 任何資料列query,則傳true回 。
相異 expr1 is [not] distinct from expr2 測試自變數是否有不同的值,其中 NULL 會被視為可比較的值。
為 false expr is [not] false 測試是否 expr 為 (不是) false
為 null expr is [not] null 如果 expr 為 ,則傳true回 。NULL
為 true expr is [not] true 測試是否 expr 為 (不是) true
喜歡 str [not] like (pattern[ESCAPE escape]) 如果 str 與不相符patternescape,則傳回 true。
喜歡 str [not] like {ANY|SOME|ALL}([pattern[, ...]]) 如果 str 不符合任何/所有模式,則傳回 true。
<=> expr1 <=> expr2 傳回與EQUAL(=)非 Null 操作數的 相同結果,但如果兩者都是 NULLfalse則傳回 true 。如果其中一個為 NULL
<= expr1 <= expr2 如果 expr1 小於或等於 expr2,則falsetrue回 ,否則傳回 。
<> expr1 <> expr2 如果 expr1 不等於 expr2,則falsetrue回 ,否則傳回 。
< expr1 < expr2 如果 expr1 小於 expr2,則falsetrue回 ,否則傳回 。
- expr1 - expr2 傳回的expr2expr1減法。
not not expr 傳回布爾表達式的邏輯 NOT
or expr1 or expr2 傳回和expr2expr1邏輯OR
% dividend % divisor 傳回 之後 dividend / divisor的餘數。
|| expr1 || expr2 傳回和expr2expr1串連。
| expr1 | expr2 傳回和expr2expr1OR
+ expr1 + expr2 傳回 expr1expr2 的總和。
Regexp str [not] regexp regex 如果 不符合 regex,則str傳回 true。
regexp_like str [not] regexp_like regex 如果 不符合 regex,則str傳回 true。
rlike str [not] rlike regex 如果 不符合 regex,則str傳回 true。
/ dividend / divisor dividend傳回除以 divisor
~ ~ expr 傳回的exprNOT

運算子優先順序

優先順序 運算子
1 :、 、 ::[ ]
2 -(一元), +(一元), ~
3 *、 、 /%div
4 +、 、 -||
5 &
6 ^
7 |
8 ===<=><>!=<<=>>=
9 not, exists
10 betweeninrlikeregexpilikelike、、、 is [not] [NULL, true, false]is [not] distinct from
11 and
12 or

字串和二進位函式

函式 描述
expr1 ||expr2 傳回和expr2expr1串連。
aes_decrypt(expr, key[, mode[, padding[, aad]]]]) 使用 AES 加密解密二進位 expr 檔。
aes_encrypt(expr, key[, mode[, padding[, iv[, aad]]]]] ) 使用 AES 加密來加密二進位 expr 檔。
ascii(str) 傳回 的第一個字元 str的 ASCII 字碼點。
base64(expr) expr轉換成基底 64 字串。
bin(expr) 傳回的 expr二進位表示。
binary(expr) 將的值 expr 轉換為 BINARY。
bit_length(expr) 傳回字串數據的位長度或二進位數據的位數目。
bitmap_count(expr) 傳回代表位圖之字串中 BINARY 設定的位數。
btrim(str [, trimStr]) str傳回已移除開頭和尾端字元。
char(expr) 傳回所提供UTF-16字碼點上的字元。
char_length(expr) 傳回字串數據的字元長度或二進位數據的位元組數目。
character_length(expr) 傳回字串數據的字元長度或二進位數據的位元組數目。
charindex(substr, str[, pos]) 傳回位置 之後第一次出現 substrstr 的位置 pos
chr(expr) 傳回所提供UTF-16字碼點上的字元。
concat(expr1, expr2[, ...]) 傳回自變數的串連。
concat_ws(sep[, expr1[, ...]]]) 傳回以 分隔 sep的串連字串。
contains(expr, subExpr) 如果 expr STRING 或 BINARY 包含 , 則傳subExprtrue回 。
crc32(expr) 傳回的迴圈備援檢查值 expr
decode(expr, charSet) 使用字元集編碼charSet將二進位expr檔轉譯為字串。
encode(expr, charSet) 使用字元編碼傳回字串的 charSet 二進位表示法。
endswith(expr, endExpr) 如果 expr STRING 或 BINARY 結尾為 ,則endExprtrue回 。
find_in_set(searchExpr,sourceExpr) 傳回字串在以逗號分隔的字串清單中的位置。
format_number(expr, scale) 格式 expr#,###,###.##會四捨五入為 scale 小數字數。
format_number(expr, fmt) 格式 expr ,例如 fmt
format_string(strfmt[, obj1 [, ...]]]) 從 printf 樣式的格式字串傳回格式化字串。
十六進位(expr) expr轉換成十六進位。
str ilike (pattern[ESCAPE escape]) 如果str與不區分大小寫相符escapepattern則傳回 true。
initcap(expr) expr 回大寫中每個單字的第一個字母。
instr(str, substr) 傳回 中str第一次出現substr之 的 (1 起始) 索引。
lcase(expr) expr 回,所有字元都變更為小寫。
left(str, len) 從傳回最 len 左邊的字元 str
len(expr) 傳回字串數據的字元長度或二進位數據的位元組數目。
length(expr) 傳回字串數據的字元長度或二進位數據的位元組數目。
levenshtein(str1,str2) 傳回字串 str1str2之間的 Levenshtein 距離。
str like (pattern[ESCAPE escape]) 如果 strescape相符,pattern則傳回 true。
locate(substr, str[, pos]) 傳回位置 之後第一次出現 substrstr 的位置 pos
lower(expr) expr 回,所有字元都變更為小寫。
lpad(expr, len[, pad]) expr回 ,左填補的 pad 長度為 len
ltrim([trimstr,] str) str 回已移除的 trimStr 前置字元。
mask(str[, upperChar[, lowerChar[, digitChar[, otherChar]]]]] ) 傳回輸入 str的遮罩版本。
md5(expr) 以十六進位字串傳回的 expr MD5 128 位總和檢查碼。
octet_length(expr) 傳回字串數據的位元組長度或二進位數據的位元元組數目。
overlay(input PLACING replace FROM pos [FOR len]) inputreplace以 取代 ,其開頭pos為 ,且 長度len為 。
parse_url(url, partToExtract[, key]) url擷取元件。
position(substr, str[, pos]) 傳回位置 之後第一次出現 substrstr 的位置 pos
position(subtr IN str) 傳回位置 之後第一次出現 substrstr 的位置 pos
printf(strfmt[, obj1 [, ...]]] ) 從 printf 樣式的格式字串傳回格式化字串。
str regexp regex 如果 符合 regex,則str傳回 true。
str regexp_like regex 如果 符合 regex,則str傳回 true。
regexp_count(str, regexp) 傳回符合模式的regexp次數str
regexp_extract(str, regexp[, idx]) 擷取 中 str 符合 regexp 表達式的第一個字串,並對應至 regex 群組索引。
regexp_extract_all(str, regexp[, idx]) 擷取 中 str 符合 regexp 表達式的所有字串,並對應至 regex 群組索引。
regexp_instr(str, regexp) 傳回中 str 符合 regexp之第一個子字串的位置。
regexp_replace(str, regexp, rep[, position]) 將符合regexp的所有子字串str取代為 rep
regexp_substr(str, regexp) 傳回 中 str 符合 regexp的第一個子字串。
repeat(expr, n) 傳回重複時間的 exprn 字串。
replace(str, search [, replace]) 將的所有專案 search 取代為 replace
reverse(expr) 傳回反轉字串或具有專案反向順序的陣列。
right(str, len) 從字串 str傳回最len右邊的字元。
str rlike regex 如果 符合 regex,則str傳回 true。
rpad(expr, len[, pad]) expr回 ,並以 右填補為 padlen長度。
rtrim([trimStr,] str) str傳回結尾字元已移除。
sentences(str[, lang, country]) 分割 str 成單字陣列。
沙(expr) 傳回 sha1 哈希值做為 的 expr十六進位字串。
sha1(expr) 傳回 sha1 哈希值做為 的 expr十六進位字串。
sha2(expr, bitLength) 傳回 SHA-2 系列總和檢查碼做為 的 expr十六進位字串。
soundex(expr) 傳回字串的 soundex 程式代碼。
space(n) 傳回包含空格的 n 字串。
split(str, regex[, limit]) str 符合 regex 的項目周圍分割,並傳回長度最多 limit為 的陣列。
split_part(str, delim, partNum) str 出現的 delim 前後分割,並傳回元件 partNum
startswith(expr, startExpr) 如果 expr STRING 或 BINARY 開頭為 startExpr,則傳true回 。
string(expr) 將值 expr 轉換成 STRING。
substr(expr, pos[, len]) 傳回 從 開始pos且 長度len為 的子字串expr
substr(expr FROM pos[ FOR len]) 傳回 從 開始pos且 長度len為 的子字串expr
substring(expr, pos[, len]) 傳回 從 開始pos且 長度len為 的子字串expr
substring(expr FROM pos[ FOR len]) 傳回 從 開始pos且 長度len為 的子字串expr
substring_index(expr, delim, count) 傳回 在發生分隔符 delim之前count的 子字串expr
to_binary(expr[, fmt]) expr傳回以 為基礎的fmt二進位轉換。
to_char(numExpr, fmt) numExpr傳回使用格式設定fmtSTRING轉換。
to_varchar(numExpr, fmt) numExpr傳回使用格式設定fmtSTRING轉換。
translate(expr, from, to) expr回 ,其中的所有字元都已取代為 中的to字元from
trim([BOTH |LEADING |尾端] [trimStr] FROM] str) 修剪字串中的字元。
try_aes_decrypt(expr, key[, mode[, padding[, aad]]]]) 使用 AES 加密解密二進位檔 expr ,並在發生錯誤時傳回 NULL
try_to_binary(expr [, fmt]) 根據 傳 expr 回轉換成 BINARY fmt,如果輸入無效,則傳回 NULL。
ucase(expr) expr 回,所有字元都變更為大寫。
unbase64(expr) 以二進位形式傳回譯碼的base64字串。
unhex(expr) 將十六進位 expr 轉換為BINARY。
upper(expr) expr 回,所有字元都變更為大寫。
url_decode(str) application/x-www-form-urlencoded 格式轉譯字串。
url_encode(str) 將字串轉譯為 application/x-www-form-urlencoded 格式。

數值純量函式

函式 描述
~ expr 傳回的exprNOT
dividend / divisor dividend傳回除以 divisor
expr1 |expr2 傳回和expr2expr1OR
- expr 傳回的 expr負值。
expr1 - expr2 傳回的expr2expr1減法。
+ expr 傳回的值 expr
expr1 + expr2 傳回 expr1expr2 的總和。
dividend % divisor 傳回 之後 dividend / divisor的餘數。
expr1 ^ expr2 傳回和expr2expr1位排除OR (XOR)
expr1 和 expr2 傳回和expr2expr1位 AND。
乘數 * 乘數 multiplier傳回乘以 multiplicand
abs(expr) 傳回 中 expr數值的絕對值。
acos(expr) 傳回的 expr反餘弦值(反餘弦值)。
acosh(expr) 傳回的反雙曲餘弦 expr
asin(expr) 傳回 的 expr反正弦值(反正弦值)。
asinh(expr) 傳回的 expr反雙曲正弦值。
atan(expr) 傳回 的 expr反正切值(反正切值)。
atan2(exprY, exprX) 傳回平面正 X 軸與座標 (exprX, ) exprY所指定之點之間的弧度角度。
atanh(expr) 傳回的 expr反雙曲正切值。
bigint(expr) 將值 expr 轉換為 BIGINT。
bit_count(expr) 傳回 自變數中設定的位數。
bit_get(expr, pos) 傳回整數數值的二進位表示法中位的值。
bit_reverse(expr) 傳回藉由反轉 自變數中位的順序所取得的值。
bitmap_bit_position(expr) 傳回值區中指定 BIGINT 數位的0位位置。
bitmap_bucket_number(expr) 傳回指定 BIGINT 數位的點陣圖值區編號。
bround(expr[,targetScale]) 使用HALF_EVEN四捨五入模式傳回四捨五入expr
cbrt(expr) 傳回 的 exprCube 根目錄。
ceil(expr[,targetScale]) 傳回小於 expr 四捨五入至 targetScale 小數點的最小數位。
ceiling(expr[,targetScale]) 傳回小於 expr 四捨五入至 targetScale 小數點的最小數位。
conv(num, fromBase, toBase) numfromBasetoBase從轉換為 。
convert_timezone([sourceTz, ]targetTz, sourceTs) 將TIMESTAMP_NTZ sourceTssourceTz 時區轉換成 targetTz
cos(expr) 傳回 expr 的餘弦。
cosh(expr) 傳回 expr 的雙曲餘弦。
科特(expr) 傳回的 expr餘切值。
csc(expr) 傳回的 expr共存項。
decimal(expr) 將值 expr 轉換成 DECIMAL。
degrees(expr) 將弧度轉換為度。
divisor div dividend 傳回 除法dividenddivisor整數部分。
double(expr) 將值 expr 轉換成 DOUBLE。
e() 傳回常數 e
exp(expr) e 回的 expr電源。
expm1(expr) 傳回 exp(expr) - 1
factorial(expr) 傳回的 expr因數。
float(expr) 將值 expr 轉換成 FLOAT。
floor(expr[,targetScale]) 傳回小於 expr 四捨五入到 targetScale 小數點數位的最大數位。
getbit(expr, pos) 傳回整數數值的二進位表示法中位的值。
hypot(expr1, expr2) 傳回 sqrt(expr1 * expr1 + expr2 * expr2)
int(expr) 將值 expr 轉換成 INTEGER。
isnan(expr) 如果 trueexpr,則傳回 NaN
ln(expr) 傳回 的自然對數(基底e)。expr
log(base,] expr) 使用base傳回的expr對數。
log1p(expr) 傳回 log(1 + expr)
log2(expr) 使用基底 2傳回 的expr對數。
log10(expr) 使用基底 10傳回 的expr對數。
mod(除數,除數) 傳回 之後 dividend / divisor的餘數。
nanvl(expr1, expr2) 如果 不是 NaN,則expr2expr1回 ,否則傳回 。
negative(expr) 傳回的 expr負值。
pi() 傳回pi。
pmod(除數,除數) 傳回 後面的 dividend / divisor正餘數。
positive(expr) 傳回的值 expr
pow(expr1, expr2) expr1引發至的expr2乘冪。
power(expr1, expr2) expr1引發至的expr2乘冪。
radians(expr) expr 度為單位轉換成弧度。
rand(種子]) 傳回介於 0 到 1 之間的隨機值。
蘭丁([種子]) 從標準常態分佈傳回隨機值。
random([seed]) 傳回介於 0 到 1 之間的隨機值。
rint(expr) expr 回四捨五入為整數做為 DOUBLE。
round(expr[,targetScale]) 使用HALF_UP四捨五入模式傳回四捨五入expr
sec(expr) 傳回的 exprsecant。
sin(expr) 傳回 expr 的正弦。
shiftleft(expr, n) 傳回位左移位 n
shiftright(expr, n) 傳回位帶正負號的帶正負號整數,由位移位 n
shiftrightunsigned(expr, n) 傳回位不帶正負號的整數數位,由位向 n 右移位。
sign(expr) 傳回 -1.0、0.0 或 1.0,如同 expr 負數、0 或正數。
signum(expr) 傳回 -1.0、0.0 或 1.0,如同 expr 負數、0 或正數。
sinh(expr) 傳回 expr 的雙曲正弦。
smallint(expr) 將值 expr 轉換成 SMALLINT。
sqrt(expr) 傳回 expr 的平方根。
tan(expr) 傳回 expr 的正切。
tanh(expr) 傳回 expr 的雙曲正切。
tinyint(expr) expr轉換成 TINYINT。
to_number(expr, fmt ) 使用格式化 fmt,傳expr回轉換成 DECIMAL。
try_add(expr1, expr2) 傳回 和 的總 expr1expr2,如果發生錯誤,則傳回 NULL。
try_divide(除數,除數) dividend傳回除以 divisor,如果 divisor 為 0,則傳回 NULL。
try_multiply(乘數、乘數) multiplier 回乘以 multiplicand、或 NULL 溢位時。
try_subtract(expr1, expr2) 傳回的減法expr2,或NULLexpr1位時。
try_to_number(expr, fmt ) expr如果 expr 格式不符合格式fmt,則傳回轉換成 DECIMAL。
width_bucket(expr, minExpr, maxExpr, numBuckets) 傳回等寬直方圖中值的貯體編號。

彙總函數

函式 描述
any(expr) 如果群組中至少有一個 值 expr 為 true,則傳回 true。
any_value(expr[,ignoreNull]) 針對一組數據列傳回的一些 值 expr
approx_count_distinct(expr[,relativeSD]) 傳回群組中 expr 估計相異值的數目。
approx_percentile(expr,percentage[,accuracy]) 傳回群組內 的近似百分位數 expr
approx_top_k(expr[,k[,maxItemsTracked]]) k 回 中 expr 最常發生的專案值及其近似計數。
array_agg(expr) 傳回數位,其中包含群組內的所有值 expr
avg(expr) 傳回從群組值計算的平均值。
bit_and(expr) 傳回群組中所有輸入值的位 AND
bit_or(expr) 傳回群組中所有輸入值的位 OR
bit_xor(expr) 傳回群組中所有輸入值的位 XOR
bitmap_construct_agg(expr) 傳回群組中所有位位置值的位 OR 。 在群組仲介於 0 到 32767 之間,做為 BINARY
bitmap_or_agg(expr) 傳回群組中所有BINARY輸入值的位OR
bool_and(expr) 如果 中的所有 expr 值在群組內為 true,則傳回 true。
bool_or(expr) 如果 群組 expr 中至少有一個值為 true,則傳回 true。
collect_list(expr) 傳回數位,其中包含群組內的所有值 expr
collect_set(expr) 傳回數位,其中包含群組內 expr 的所有唯一值。
corr(expr1,expr2) 傳回一組數位組之間的相互關聯 Pearson 係數。
count\ 傳回群組中擷取的數據列總數,包括包含 null 的數據列。
count(expr[, ...]) 傳回群組中提供的表示式都是非 Null 的數據列數目。
count_if(expr) 傳回 中 expr群組的 true 值數目。
count_min_sketch(欄,epsilon,信心,種子) 使用、 confidenceseed傳回 群組中columnepsilon所有值的 count-min 草圖。
covar_pop(expr1,expr2) 傳回群組中數位組的母體共變數。
covar_samp(expr1,expr2) 傳回群組中數位組的樣本共變數。
every(expr) 如果群組中的所有值 expr 都為 true,則傳回 true。
first(expr[,ignoreNull]) 傳回數據列群組的第一個 值 expr
first_value(expr[,ignoreNull]) 傳回數據列群組的第一個 值 expr
hll_sketch_agg(expr[,lgConfigK]) 傳回 HyperLogLog 草圖,用來近似相異值計數。
hll_union_agg(expr[,allowDifferentLgConfigK]) 匯總一組數據列的 HyperLogLog 草圖。
kurtosis(expr) 傳回從群組值計算的庫爾特氏值。
last(expr[,ignoreNull]) 傳回數據列群組的最後一個值 expr
last_value(expr[,ignoreNull]) 傳回數據列群組的最後一個值 expr
max(expr) 傳回群組中的 最大值 expr
max_by(expr1,expr2) expr1 回與群組中 最大值相關聯的 值 expr2
mean(expr) 傳回從群組值計算的平均值。
median(expr) 傳回從群組值計算的中位數。
min(expr) 傳回群組中的 最小值 expr
min_by(expr1, expr2) 傳回與群組中 最小值相關聯的 值expr1expr2
mode(expr [,deterministic]) 傳回群組中最常不是 NULL的值 expr
percentile(expr, percentage [,frequency]) 傳回指定 之的percentage確切百分位數值expr
percentile_approx(expr,percentage[,accuracy]) 傳回群組內 的近似百分位數 expr
percentile_cont(pct) WITHIN GROUP (ORDER BY key) 傳回群組內 的內插百分位數 key
percentile_disc(pct) WITHIN GROUP (ORDER BY key) 傳回群組內的 離散百分位數 key
regr_avgx(yExpr, xExpr) 傳回從群組值計算的 xExpr 平均值,其中 xExpryExpr 為 NOT NULL。
regr_avgy(yExpr, xExpr) 傳回從群組值計算的 yExpr 平均值,其中 xExpryExpr 為 NOT NULL。
regr_count(yExpr, xExpr) 傳回群組中非 Null 值組yExprxExpr的數目。
regr_intercept(yExpr, xExpr) 傳回群組中單變數線性回歸線的截距,其中 xExpryExpr 為 NOT NULL。
regr_r2(yExpr, xExpr) 從群組的值傳回判斷係數,其中 xExpryExpr 為 NOT NULL。
regr_slope(yExpr, xExpr) 傳回群組中非 Null 值組yExprxExpr線性回歸線的斜率。
regr_sxx(yExpr, xExpr) 傳回群組值的平方 xExpr 總和,其中 xExpryExpr 為 NOT NULL。
regr_sxy(yExpr, xExpr) 傳回和計算自群組值,yExpr且 為 NOT NULL 的產品總和xExpryExprxExpr
regr_syy(yExpr, xExpr) 傳回群組值的平方 yExpr 總和,其中 xExpryExpr 為 NOT NULL。
schema_of_json_agg(json[, options]) 以 DDL 格式傳回群組中字串的 JSON 合併架構。
扭曲(expr) 傳回從群組值計算的扭曲值。
some(expr) 如果群組true中至少有一個 值為 expr ,則傳回 true。
std(expr) 傳回從群組內值計算的樣本標準偏差。
stddev(expr) 傳回從群組內值計算的樣本標準偏差。
stddev_pop(expr) 傳回從群組值計算的母體標準偏差。
stddev_samp(expr) 傳回從群組值計算的樣本標準偏差。
sum(expr) 傳回從群組值計算的總和。
try_avg(expr) 傳回從群組值計算的平均值,如果發生溢位,則傳回NULL。
try_sum(expr) 傳回從群組值計算的總和,如果發生溢位,則為NULL。
var_pop(expr) 傳回從群組值計算的母體變異數。
var_samp(expr) 傳回從群組值計算的樣本變異數。
變異數(expr) 傳回從群組值計算的樣本變異數。

排名視窗函式

函式 描述
dense_rank() 傳回與分割區中所有值相較之下的值排名。
ntile(n) 將每個視窗分割區的數據列分割成最多 1 到 n n個值區。
percent_rank() 計算數據分割內值的百分比排名。
rank() 傳回與分割區中所有值相較之下的值排名。
row_number() 根據視窗分割內數據列的順序,為每個數據列指派唯一的序號,從一個開始。

分析視窗函式

函式 描述
cume_dist() 傳回相對於數據分割中所有值的值位置。
lag(expr[,offset[,default]]] ) 從數據分割內的前一個數據列傳回的值 expr
lead(expr[,offset[,default]]) 從數據分割內的後續數據列傳回的值 expr
nth_value(expr, offset[, ignoreNulls]) 傳回視窗中特定 offset 處的值expr

陣列函數

函式 描述
arrayExpr[indexExpr] 傳回位於ARRAYarrayExpr位置indexExpr的專案。
aggregate(expr,start,merge[,finish]) 使用自訂匯總工具匯總數組中的專案。
array([expr [, ...]]]) 傳回數位,其中包含中的 expr專案。
array_append(array, elem) array傳回 所附加的 elem
array_compact(陣列) array移除 NULL 值。
array_contains(array,value) 如果 array 包含 value,則傳回 true。
array_distinct(陣列) array移除重複的值。
array_except(array1,array2) 傳回 中的 array1 項目陣列,但不在中 array2
array_insert(array, index, elem) 傳回展開array的位置插入index的位置elem
array_intersect(array1,array2) 傳回和 array2交集array1中項目的陣列。
array_join(array,delimiter[,nullReplacement]) 串連的專案 array
array_max(陣列) 傳回 中的 array最大值。
array_min(陣列) 傳回 中的 array最小值。
array_position(array,element) 傳回 中array第一次出現element的位置。
array_prepend(array, elem) array傳回 前面加上 elem
array_remove(array,element) array移除 的所有專案element
array_repeat(元素,count) 傳回包含 elementcount 時間的陣列。
array_size(陣列) 傳回 中的 array項目數目。
array_sort(陣列,func) array傳回根據 func排序。
array_union(array1,array2) 傳回 和 等array2array1中項目陣列,不含重複專案。
arrays_overlap(array1, array2) 如果 和 array2 的交集不是空的array1,則傳回 true。
arrays_zip(array1 [, ...]) 傳回結構合併的陣列,其中第 n 個結構包含輸入數位的所有 N 個值。
基數(expr) 傳回的大小 expr
concat(expr1, expr2 [, ...]) 傳回自變數的串連。
element_at(arrayExpr, index) 傳回 位於indexarrayExpr 專案。
exists(expr, pred) 如果 pred 中任何專案 expr為 true,則傳回 true。
爆炸(集合) 透過非巢狀 collection傳回數據列。
explode_outer(集合) 使用外部語意取消巢狀 collection 傳回數據列。
filter(expr,func) 使用函式 func篩選 中的expr陣列。
flatten(arrayOfArrays) 將陣列陣陣轉換成單一陣列。
forall(expr, predFunc) 測試是否 predFunc 保留陣列中的所有專案。
get(arrayExpr, index) 傳回 位於 indexarrayExpr 專案,從 0開始。
內嵌(expr) 將結構陣列分解成數據表。
inline_outer(expr) 將結構數位分解成具有外部語意的數據表。
posexplode(expr) 將具有位置編號的陣列取消巢狀,以傳回數據列。
posexplode_outer(expr) 使用 OUTER 語意取消巢狀陣列,並編號位置,以傳回數據列。
reduce(expr,start,merge[,finish]) 使用自訂匯總工具匯總數組中的專案。
reverse(array) 傳回反轉字串或具有專案反向順序的陣列。
sequence(start,stop,step) 從產生項目start陣列,從到 stop (內含),遞增。step
shuffle(array) 傳回 中 expr陣列的隨機排列。
size(expr) 傳回的 expr基數。
slice(expr,start,length) 傳回陣列的子集。
sort_array(expr[,ascendingOrder]) 以排序順序傳回陣列 expr
transform(expr, func) 使用func函式 轉換 中expr陣列中的專案。
try_element_at(arrayExpr, index) arrayExpr回 位於 index的專案,如果 index 超出界限,則NULL傳回 。
zip_with(expr1, expr2, func) 使用 將和expr2中的expr1數組合並成單一陣列func

對應函式

函式 描述
mapExpr[keyExpr] 傳回 MAP mapExprkeyExpr 值。
基數(expr) 傳回的大小 expr
element_at(mapExpr,金鑰) 傳回的 keymapExpr
爆炸(expr) 透過非巢狀 expr傳回數據列。
explode_outer(expr) 使用外部語意取消巢狀 expr 傳回數據列。
map([{key1, value1}[, ...]]] ) 建立具有指定索引鍵/值組的對應。
map_concat([expr1 [, ...]]]) 傳回所有 expr 對應表達式的聯集。
map_contains_key(地圖,索引鍵) 如果 map 包含 key,則傳true回 ,false否則傳回 。
map_entries(地圖) 傳回 中 map所有專案的未排序數位。
map_filter(expr, func) 使用func函式 篩選 對應expr中的專案。
map_from_arrays(索引鍵、值) 建立具有 一對 keysvalues 陣列的對應。
map_from_entries(expr) 建立從指定項目陣列建立的對應。
map_keys(地圖) 傳回未排序的陣列,其中包含的 map索引鍵。
map_values(地圖) 傳回未排序的陣列,其中包含的值 map
map_zip_with(map1, map2, func) map1map2 合併成單一對應。
size(expr) 傳回的 expr基數。
str_to_map(expr[,pairDelim[,keyValueDelim]]] ) 使用分隔符分割 expr 成索引鍵/值組之後,傳回對應。
transform_keys(expr, func) 使用func函式 轉換 中對應expr中的索引鍵。
transform_values(expr, func) 使用func函式 轉換 中的對應expr值。
try_element_at(mapExpr,索引鍵) 如果 不存在,NULLkey則傳回的值mapExprkey

日期、時間戳和間隔函式

如需日期和時間格式的資訊,請參閱 日期時間模式

函式 描述
intervalExpr / divisor 傳回除以的 divisor間隔。
- intervalExpr 傳回的 intervalExpr負值。
intervalExpr1 - intervalExpr2 傳回的intervalExpr2intervalExpr1減法。
datetimeExpr1 - datetimeExpr2 傳回的datetimeExpr2datetimeExpr1減法。
+ intervalExpr 傳回的值 intervalExpr
intervalExpr1 + intervalExpr2 傳回 intervalExpr1intervalExpr2 的總和。
intervalExpr * multiplicand intervalExpr傳回乘以 multiplicand
abs(expr) 傳回 中 expr間隔值的絕對值。
add_months(startDate,numMonths) 傳回 之後startDatenumMonths日期。
curdate() 傳回查詢評估開始時的目前日期。
current_date() 傳回查詢評估開始時的目前日期。
current_timestamp() 傳回查詢評估開始時的目前時間戳。
current_timezone() 傳回目前的會話本機時區。
date(expr) 將值 expr 轉換成 DATE。
date_add(startDate,numDays) 傳回 之後startDate的日期numDays
date_add(單位、值、expr) 將 s 加入valueunit至時間戳 。 expr
date_diff(單位,啟動,停止) 傳回以 s 測量 unit的兩個時間戳之間的差異。
date_format(expr,fmt) 以 格式 fmt將時間戳轉換為字串。
date_from_unix_date(天) 從之後 1970-01-01的天數建立日期。
date_part(field,expr) 擷取日期、時間戳或間隔的一部分。
date_sub(startDate,numDays) 傳回 之前的startDate日期numDays
date_trunc(單位,expr) 傳回截斷至 中所指定單位的 unit時間戳。
dateadd(startDate,numDays) 傳回 之後startDate的日期numDays
dateadd(unit, value, expr) 將 s 加入valueunit至時間戳 。 expr
datediff(endDate,startDate) 傳回 從 startDateendDate的天數。
datediff(unit, start, stop) 傳回以 s 測量 unit的兩個時間戳之間的差異。
day(expr) 傳回日期或時間戳的月份日期。
dayofmonth(expr) 傳回日期或時間戳的月份日期。
dayofweek(expr) 傳回日期或時間戳的星期數。
dayofyear(expr) 傳回日期或時間戳的年份日期。
divisor div dividend 傳回間隔dividend除法的divisor整數部分。
extract(field FROM source) fieldsource回 。
from_unixtime(unixTime,fmt) 在 中fmtunixTime回 。
from_utc_timestamp(expr,timezone) 傳回時區 timeZone中以UTC指定的時間戳expr
getdate() 傳回查詢評估開始時的目前時間戳。
hour(expr) 傳回時間戳的小時元件。
last_day(expr) 傳回日期所屬月份的最後一天。
make_date(年,月,日) yearmonthday 欄位建立日期。
make_dt_interval([days[, hours[,min[, secs]]]]) dayshoursminssecs建立日時間間隔。
make_interval(年、月、周、天、小時、分鐘、秒) 已淘汰:從 years、、monthsweeksdayshoursminssecs建立間隔。
make_timestamp(year,month,day,hour,min,sec[,timezone]) yearmonth、、、hourdayminsectimezone 欄位建立時間戳。
make_ym_interval(年[, 月]]) yearsmonths建立年月間隔。
minute(expr) 傳回 中 expr時間戳的分鐘元件。
month(expr) 傳回 中 expr時間戳的月份元件。
months_between(expr1,expr2[,roundOff]) 傳回 和 expr2expr1日期或時間戳之間經過的月數。
next_day(expr,dayOfWeek) 傳回晚於 expr 的第一個日期,並在 中 dayOfWeek命名為 。
now() 傳回查詢評估開始時的目前時間戳。
quarter(expr) 傳回範圍 1 到 4 的年份 expr 四分之一。
second(expr) 傳回 中 expr時間戳的第二個元件。
session_window(expr, gpDuration) 在時間戳表示式上建立會話視窗。
sign(expr) 傳回 -1.0、0.0 或 1.0,因為間隔 expr 為負數、0 或正數。
signum(expr) 傳回 -1.0、0.0 或 1.0,因為間隔 expr 為負數、0 或正數。
timediff(unit, start, stop) 傳回以 s 測量 unit的兩個時間戳之間的差異。
timestamp(expr) expr轉換成 TIMESTAMP。
timestamp_micros(expr) 建立自UTC epoch以來的時間戳 expr 微秒數。
timestamp_millis(expr) 建立UTC epoch之後的時間戳 expr 毫秒。
timestamp_seconds(expr) 建立UTC epoch之後的時間戳 expr 秒數。
timestampadd(unit, value, expr) 將 s 加入valueunit至時間戳 。 expr
timestampdiff(unit, start, stop) 傳回以 s 測量 unit的兩個時間戳之間的差異。
to_date(expr[,fmt]) 使用選擇性格式傳 expr 回轉換成日期。
to_timestamp(expr[,fmt]) 使用選擇性格式,傳 expr 回轉換成時間戳。
to_unix_timestamp(expr[,fmt]) 以 UNIX 時間戳的形式傳回 中的 expr 時間戳。
to_utc_timestamp(expr,timezone) 以UTC傳回不同時區中的 expr 時間戳。
trunc(expr, fmt) 傳回日期,其日期部分截斷至格式模型 fmt所指定的單位。
try_add(expr1, expr2) 傳回 和 的總 expr1expr2,如果發生錯誤,則傳回 NULL。
try_divide(除數,除數) dividend傳回除以 divisor,如果 divisor 為 0,則傳回 NULL。
try_multiply(乘數、乘數) multiplier 回乘以 multiplicand、或 NULL 溢位時。
try_subtract(expr1, expr2) 傳回的減法expr2,或NULLexpr1位時。
try_to_timestamp(expr[,fmt]) expr使用選擇性格式,或NULL轉換失敗時,傳回轉換成時間戳。
unix_date(expr) 傳回 自 之後 1970-01-01的天數。
unix_micros(expr) 傳回自 之後 1970-01-01 00:00:00 UTC的微秒數。
unix_millis(expr) 傳回 自 之後 1970-01-01 00:00:00 UTC的毫秒數。
unix_seconds(expr) 傳回 自 之後 1970-01-01 00:00:00 UTC的秒數。
unix_timestamp([expr[, fmt]]) 擷取目前或指定時間的 UNIX 時間戳。
weekday(expr) 傳回 當周的 expr日期。
weekofyear(expr) 傳回 年份的 expr星期。
year(expr) 傳回的 expr年份元件。
window(expr, width[, step[, start]]) 在時間戳表達式上建立以跳動為基礎的滑動視窗。
window_time(視窗) 傳回視窗session_window函式所產生的滑動視窗內含結束時間。

H3 地理空間函式

如需 H3 地理空間函式的相關信息,請參閱 H3 地理空間函式

轉換函式和建構函式

如需類型之間轉換的資訊,請參閱 cast 函 式和 try_cast函式

函式 描述
array([expr [, ...]]]) 傳回數位,其中包含中的 expr專案。
bigint(expr) 將值exprBIGINT轉換成 。
binary(expr) 將的值exprBINARY轉換為 。
布林值(expr) 轉換成 exprBOOLEAN
cast(expr AS type) 將值 expr 轉換成目標資料類型 type
expr :: type 將值 expr 轉換成目標資料類型 type
date(expr) 將值exprDATE轉換成 。
decimal(expr) 將值exprDECIMAL轉換成 。
double(expr) 將值exprDOUBLE轉換成 。
float(expr) 將值exprFLOAT轉換成 。
int(expr) 將值exprINTEGER轉換成 。
make_date(年,月,日) yearmonthday 欄位建立日期。
make_dt_interval([days[, hours[,min[, secs]]]]) dayshoursminssecs建立日時間間隔。
make_interval(年、月、周、天、小時、分鐘、秒) years、、monthsweeksdayshoursminssecs建立間隔。
make_timestamp(year,month,day,hour,min,sec[,timezone]) yearmonth、、、hourdayminsectimezone 欄位建立時間戳。
make_ym_interval(年[, 月]]) yearsmonths建立年月間隔。
map([{key1, value1} [, ...]]] ) 建立具有指定索引鍵/值組的對應。
named_struct({name1, val1} [, ...]) 使用指定的功能變數名稱和值建立結構。
smallint(expr) 將值exprSMALLINT轉換成 。
string(expr) 將值exprSTRING轉換成 。
struct(expr1 [, ...]) STRUCT使用指定的網域值建立 。
tinyint(expr) 轉換成 exprTINYINT
timestamp(expr) 轉換成 exprTIMESTAMP
to_char(expr, fmt) expr傳回使用格式設定fmtSTRING轉換。
to_date(expr[,fmt]) 使用選擇性格式傳 expr 回轉換成日期。
to_number(expr, fmt) 使用格式fmt,傳expr回轉換成 DECIMAL。
to_timestamp(expr[,fmt]) 使用選擇性格式,傳 expr 回轉換成時間戳。
to_varchar(expr, fmt) expr傳回使用格式設定fmtSTRING轉換。
try_cast(expr AS 類型) 安全地將值 expr 轉換成目標數據類型 type
try_to_number(expr, fmt) expr傳回使用格式fmt設定 的轉換,NULLDECIMAL如果 expr 不是有效的 ,則傳回 。

CSV 函式

函式 描述
from_csv(csvStr, schema[, options]) 傳回具有 csvStrschema的結構值。
schema_of_csv(csv[, options]) 以 DDL 格式傳回 CSV 字串的架構。
to_csv(expr[, options]) 傳回具有指定結構值的 CSV 字串。

JSON 函數

函式 描述
jsonStr : jsonPath 傳回從擷取的 jsonStr欄位。
from_json(jsonStr, schema[, options]) 傳回具有 jsonStrschema的結構值。
get_json_object(expr, path) pathJSON取物件。
json_array_length(jsonArray) 傳回最 JSON 外層陣列中的項目數目。
json_object_keys(jsonObject) 傳回最 JSON 外層物件的所有索引鍵做為陣列。
json_tuple(jsonStr, path1 [, ...]) 以 Tuple 的形式傳回多個 JSON 物件。
schema_of_json(jsonStr[, options]) 傳回 DDL 格式字串的 JSON 架構。
schema_of_json_agg(jsonStr[, options]) 以 DDL 格式傳回群組中字串的 JSON 合併架構。
to_json(expr[, options]) JSON 回字串,其中包含 中指定的 expr結構。

XPath 和 XML 函式

函式 描述
from_xml(xmlStr, schema[, options]) 傳回使用 schema剖析的結構xmlStr值。
schema_of_xml(xmlStr[, options]) 傳回 DDL 格式字串的 XML 架構。
xpath(xml, xpath) 傳回符合 xpath之節點xml內的值。
xpath_boolean(xml, xpath) true如果xpath表示式評估為 true,則傳回 ;如果找到 中的xml相符節點,則傳回 。
xpath_double(xml, xpath) 從 XML 檔傳回 DOUBLE 值。
xpath_float(xml, xpath) 從 XML 檔傳回 FLOAT 值。
xpath_int(xml, xpath) 從 XML 檔傳回 INTEGER 值。
xpath_long(xml, xpath) 從 XML 檔傳回 BIGINT 值。
xpath_number(xml, xpath) 從 XML 檔傳回 DOUBLE 值。
xpath_short(xml, xpath) 從 XML 檔傳回 SHORT 值。
xpath_string(xml, xpath) 傳回第一個符合 XPath 運算式之 XML 節點的內容。

AI 函式

函式 描述
ai_analyze_sentiment(內容) 傳回文字的情感。
ai_classify(內容、標籤) 將提供的內容分類為其中一個提供的標籤。
ai_extract(內容、標籤) 從指定的文字擷取由標籤指定的實體。
ai_fix_grammar(內容) 更正指定文字中的文法錯誤。
ai_gen(內容) Databricks Foundation 模型 API 叫用最先進的產生 AI 模型,以回應使用者提供的提示。
ai_generate_text(prompt, modelName[, param1, value1] [...]) 已被取代:傳回指定提示時,由選取的大型語言模型 (LLM) 產生的文字。
ai_mask(內容、標籤) 遮罩指定文字中的指定實體。
ai_query(endpointName, request, returnType) 叫用現有的 Databricks 模型服務端點,並剖析並傳回其回應。
ai_similarity(strExpr1,strExpr2) 比較兩個字串,並計算語意相似度分數。
ai_summarize(content[, max_words]) 產生指定文字的摘要。
ai_translate(內容,to_lang) 將文字翻譯成指定的目標語言。

讀取函式

函式 描述
read_files(path, [optionKey => optionValue] [, ...]) 讀取雲端記憶體上的數據檔,並以表格式格式傳回。
read_kafka([optionKey => optionValue] [, ...]) 從 Apache Kafka 叢集讀取記錄,並以表格式傳回記錄。
read_kinesis({parameter => value} [, ...]) 傳回從一或多個數據流讀取記錄的數據表。
read_pubsub([parameter => value] [, ...]) 從主題讀取 Pub/Sub 記錄的數據表值函式。
read_pulsar({optionKey => optionValue} [, ...]) 傳回數據表,其中包含從 Pulsar 讀取的記錄。
read_state_metadata(路徑) 傳回數據表,其中包含代表串流查詢狀態元數據的數據列。
read_statestore(path [, option_key => option_value] [...]) 從串流查詢的狀態存放區傳回記錄。

其他函式

函式 描述
assert_true(expr) 如果 expr 不是 true,則傳回錯誤。
CASE expr { WHEN opt1 THEN res1 } [...] [ELSE def]結束 resN傳回第一個optN等於 exprdef 如果沒有任何相符項目則傳回 。
CASE { WHEN cond1 THEN res1 } [...] [ELSE def]結束 resN會傳回評估為 true 的第一個 condN ,如果def找不到則傳回 。
cloud_files_state( { TABLE(table) | checkpoint } )
coalesce(expr1, expr2 [, ...]) 傳回第一個非 Null 自變數。
Cube (expr1 [, ...]) 使用指定的表達式數據行建立多維度 Cube。
current_catalog() 傳回目前的目錄。
current_database() 傳回目前的架構。
current_metastore() 傳回目前的 Unity 目錄中繼存放區識別碼。
current_recipient(金鑰 ) 傳回與 Delta Sharing 共用之檢視中目前收件者的屬性。
current_schema() 傳回目前的架構。
current_user() 傳回執行語句的使用者。
current_version() 傳回目前版本的 Azure Databricks。
decode(expr, { key, value } [, ...][,defValue]) 傳回符合索引鍵的值。
elt(index, expr1 [, ...] ) 傳回第 n 個表達式。
equal_null(expr1, expr2) 如果expr1相等expr2或兩個表示式都是 NULL,則falsetrue回 ,否則傳回 。
event_log( { TABLE(table) | pipeline_id } )
greatest(expr1, expr2 [, ...]) 傳回所有自變數的最大值,略過 Null 值。
grouping(col) 指出、 ROLLUPCUBE 中的GROUPING SET指定數據行是否代表小計。
grouping_id([col1 [, ...]]]) 傳回一組數據行群組的層級。
hash(expr1 [, ...]) 傳回自變數的哈希值。
hll_sketch_estimate(expr) 在 HyperLogLog 草圖中收集的相異值數目。
hll_union(expr1, expr2 [,allowDifferentLgConfigK]) 結合兩個 HyperLogLog 草圖。
java_method(class, method[, arg1 [, ...]]]) 呼叫具有反映的方法。
if(cond, expr1, expr2) 如果 condtrue,則expr2expr1回 ,否則傳回 。
iff(cond, expr1, expr2) 如果 condtrue,則expr2expr1回 ,否則傳回 。
ifnull(expr1, expr2) 如果 expr1NULL,則expr1expr2回 ,否則傳回 。
input_file_block_length() 傳回所讀取區塊的位元組長度。
input_file_block_start() 傳回所讀取區塊位元組的開始位移。
input_file_name() 傳回正在讀取的檔名,如果無法使用,則傳回空字串。
is_account_group_member(組) 如果目前使用者是帳戶層級的群組成員,則傳回 true。
is_member(組) 如果目前使用者是工作區層級群組的成員,則傳回 true。
isnull(expr) 如果 trueexpr,則傳回 NULL
isnotnull(expr) 如果 expr 不是 NULL,則傳true回 。
least(expr1, expr2 [, ...]) 傳回所有自變數的最小值,略過 Null 值。
list_secrets() 傳回使用者有權從 Databricks 秘密服務查看的金鑰。
luhn_check(numStr) 如果numStr透過 Luhn 演演算法檢查,則true回 。
monotonically_increasing_id() 傳回單調增加64位整數。
nullif(expr1, expr2) 如果 expr1 等於 expr2,則expr1NULL回 ,否則傳回 。
nvl(expr1, expr2) 如果 expr1NULL,則expr1expr2回 ,否則傳回 。
nvl2(expr1, expr2, expr3) 如果 expr1 不是 NULL,則expr3expr2回 ,否則傳回 。
raise_error(expr) 擲回例外 expr 狀況做為訊息。
range(end) 傳回指定範圍內值的數據表。
range(start, end [, step [, numParts]]) 傳回指定範圍內值的數據表。
reflect(class, method[, arg1 [, ...]]]) 呼叫具有反映的方法。
secret(scope, key) 使用指定的 scopekeyDatabricks 秘密服務擷取秘密值。
session_user() 傳回連線至 Azure Databricks 的使用者。
spark_partition_id() 傳回目前的分割區標識碼。
sql_keywords() 傳回 Azure Databricks 中的一組 SQL 關鍵詞。
stack(numRows, expr1 [, ...]) expr1、 ..., exprN 分隔成 numRows 資料列。
table_changes(table_str,開始 [,結束]) 傳回已啟用變更數據摘要之 Delta Lake 數據表的變更記錄。
try_reflect(class, method[, arg1 [, ...]]]) 呼叫反映的方法,如果方法失敗,則傳 NULL 回 。
typeof(expr) 傳回 數據類型的 exprDDL 格式型別字串。
user() 傳回執行語句的使用者。
uuid() 傳回通用唯一標識碼 (UUID) 字串。
window(expr, width[, step [, start]]) 在時間戳表達式上建立以跳動為基礎的滑動視窗。
xxhash64(expr1 [, ...]) 傳回自變數的64位哈希值。
version() 傳回 Apache Spark 版本。