内置函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

本文提供适用于字符串和二进制类型、数字标量、聚合、窗口、数组、映射、日期和时间戳、强制转换、CSV 数据、JSON 数据、XPath 操作的内置运算符和函数及其他杂项函数的链接与说明。

对于现有内置函数不支持的用例,请考虑定义自定义函数。 请参阅什么是用户定义函数 (UDF)?

另请参阅:

运算符和谓词

若要了解如何在考虑到运算符相互之间关系的情况下分析运算符,请参阅运算符优先顺序

操作员 语法 说明
& expr1 & expr2 返回 ANDexpr1 的按位 expr2 结果。
expr1 and expr2 返回 ANDexpr1 的逻辑 expr2
* multiplier * multiplicand 返回 multiplier 乘以 multiplicand 的结果。
!= expr1 != expr2 如果 expr1 不等于 expr2,则返回 true,否则返回 false
! !expr 返回布尔表达式的逻辑 NOT 结果。
之间 expr1 [not] between expr2 and expr2 测试 expr1 是否大于等于 expr2 且小于等于 expr3
[] arrayExpr [ indexExpr ] 返回 indexExprARRAY 的第 arrayExpr 个元素。
[] mapExpr [ keyExpr ] 返回 keyExprMAPmapExpr 的值。
^ expr1 ^ expr2 返回 OR (XOR)expr1 的按位异或 expr2 结果。
jsonStr : jsonPath 返回从 jsonStr 中提取的字段。
:: expr :: type 将值 expr 强制转换为目标数据类型 type
?:: expr ?:: type 如果可能,将值 expr 转换为目标数据类型 type;否则返回 NULL
div dividend div divisor 返回 dividend 除以 divisor 所得结果的整数部分。
mapExpr . keyIdentifier 按照 MAP 返回 keyIdentifier 值。
structExpr . fieldIdentifier 按照 STRUCT 返回 fieldIdentifier 字段。
== expr1 == expr2 如果 true 等于 expr1,则返回 expr2;否则返回 false
= expr1 = expr2 如果 true 等于 expr1,则返回 expr2;否则返回 false
>= expr1 >= expr2 如果 true 大于或等于 expr1,则返回 expr2,否则返回 false
> expr1 > expr2 如果 true 大于 expr1,则返回 expr2,否则返回 false
存在 exists(query) 如果 query 返回至少一行,则返回 true,否则返回 false。
ilike str [not] ilike (pattern[ESCAPE escape]) 如果 str(不)匹配具有 patternescape(不区分大小写),则返回 true。
ilike str [not] ilike {ANY\|SOME\|ALL}([pattern[, ...]]) 如果 str(不)匹配任意/所有模式(不区分大小写),则返回 true。
elem [not] in (expr1[, ...]) 如果 true(不)等于任何 elem,则返回 exprN
elem [not] in (query) 如果 true(不)等于 elem 中的任何行,则返回 query
是独特的 expr1 is [not] distinct from expr2 测试参数是否具有不同的值,其中 NULL 被视为可比较值。
为假 expr is [not] false 测试 expr 是否为 false
为空 expr is [not] null 如果 true 不为 expr,则返回 NULL
为真 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(=) 相同的结果,但如果两个操作数均为 true,则返回 NULL;如果其中一个操作数为 false,则返回 NULL
<= expr1 <= expr2 如果 true 小于或等于 expr1,则返回 expr2,否则返回 false
<> expr1 <> expr2 如果 true 不等于 expr1,则返回 expr2,否则返回 false
< expr1 < expr2 如果 true 小于 expr1,则返回 expr2,否则返回 false
- expr1 - expr2 返回从 expr2 减去 expr1 得到的结果。
not expr 返回布尔表达式的逻辑 NOT 结果。
expr1 or expr2 返回 ORexpr1 的逻辑 expr2
% dividend % divisor 返回在进行 dividend / divisor 运算后的余数。
|| expr1 \|\| expr2 返回将 expr1expr2 串联后的结果。
| expr1 \| expr2 返回 ORexpr1 的按位 expr2 结果。
+ expr1 + expr2 返回 expr1expr2 的总和。
regexp str [not] regexp regex 如果 str(不)匹配 regex,则返回 true。
regexp_like str [not] regexp_like regex 如果 str(不)匹配 regex,则返回 true。
rlike str [not] rlike regex 如果 str(不)匹配 regex,则返回 true。
/ dividend / divisor 返回 dividend 除以 divisor 的结果。
~ ~ expr 返回 NOT 的按位 expr 结果。

运算符优先顺序

优先顺序 操作员
1 :::?::[ ]
2 -(一元)、 +(一元)、 ~
3 */%div
4 +-\|\|
5 &
6 ^
7 \|
8 ===<=><>!=<<=>>=
9 notexists
10 betweeninrlikeregexpilikelikeis [not] [NULL, true, false]is [not] distinct from
11 and
12 or

字符串和二进制函数

函数 说明
expr1 ||expr2 返回将 expr1expr2 串联后的结果。
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 转换为 base 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) 返回字符串数据的字符长度或二进制数据的字节数。
字符长度(expr) 返回字符串数据的字符长度或二进制数据的字节数。
charindex(substr, str[, pos]) 返回 substr 第一次出现在 str 中位置 pos 之后的位置。
chr(expr) 返回位于提供的 UTF-16 码位的字符。
strExpr 排序规则名称 将显式排序规则 collationName 附加到 strExpr
排序规则 [for](strExpr) 返回附加到 strExpr 的排序规则。
concat(expr1, expr2[, ...]) 返回参数的串联。
concat_ws(sep[, expr1[, ...]]) 返回由 sep 分隔的串联字符串。
contains(expr, subExpr) 如果 trueexprSTRING 包含 BINARY,则返回 subExpr
crc32(expr) 返回 expr 的循环冗余校验值。
decode(expr, charSet) 使用字符集编码 expr 将二进制 charSet 转换为字符串。
encode(expr, charSet) 使用 charSet 字符编码返回字符串的二进制表示形式。
endswith(expr, endExpr) 如果 trueexprSTRINGBINARY 结尾,则返回 endExpr
find_in_set(searchExpr,sourceExpr) 返回某个字符串在逗号分隔的字符串列表中的位置。
format_number(expr, scale) 设置 expr 的格式(如 #,###,###.##),四舍五入到小数位数 scale
format_number(expr, fmt) 设置 expr 的格式(如 fmt)。
format_string(strfmt[, obj1 [, ...]]) 从 printf 样式的格式字符串返回一个带格式的字符串。
hex(expr) expr 转换为十六进制。
str ilike(pattern[ESCAPE escape]) 如果 str 匹配具有 patternescape(不区分大小写),则返回 true。
initcap(expr) 返回 expr,其中的每个单词的首字母大写。
instr(str, substr) 返回 substrstr 的第一个匹配项的索引(从 1 开始)。
lcase(expr) 返回将 expr 的所有字符均更改为小写后的结果。
left(str, len) 返回 len 中最左边的 str 个字符。
len(expr) 返回字符串数据的字符长度或二进制数据的字节数。
长度(expr) 返回字符串数据的字符长度或二进制数据的字节数。
levenshtein(str1,str2) 返回字符串 str1str2 之间的 Levenshtein 距离。
str like (pattern[ESCAPE escape]) 如果 str 与具有 patternescape 匹配,则返回 true。
locate(substr, str[, pos]) 返回 substr 第一次出现在 str 中位置 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(输入放置替换 FROM pos [FOR len]) input 替换为从 replace 开始且长度为 poslen
overlay(输入放置替换 FROM pos [FOR len]) input 替换为从 replace 开始且长度为 poslen
parse_url(url, partToExtract[, key]) url 中提取一个部分。
position(substr, str[, pos]) 返回 substr 第一次出现在 str 中位置 pos 之后的位置。
position(subtr IN str) 返回 substr 第一次出现在 str 中位置 pos 之后的位置。
printf(strfmt[, obj1 [, ...]]) 从 printf 样式的格式字符串返回一个带格式的字符串。
randstr(length) 返回一个随机字符串,由length字母数字字符组成。
字符串 正则表达式 regex 如果 strregex 匹配,则返回 true。
str regexp_like regex 如果 strregex 匹配,则返回 true。
regexp_count(str, regexp) 返回 strregexp 模式匹配的次数。
regexp_extract(str, regexp[, idx]) str 中提取与 regexp 表达式匹配且对应于 regex 组索引的第一个字符串。
regexp_extract_all(str, regexp[, idx]) str 中提取与 regexp 表达式匹配且对应于 regex 组索引的所有字符串。
regexp_instr(str,regexp) 返回 str 中与 regexp 匹配的第一个 substring 的位置。
regexp_replace(str, regexp, rep[, position]) str 中与 regexp 匹配的所有子字符串替换为 rep
regexp_substr(str,regexp) 返回 str 中与 regexp 匹配的第一个 substring。
repeat(expr, n) 返回重复 exprn 次的字符串。
replace(str,search[,replace]) 将所有 search 项都替换为 replace
reverse(expr) 返回一个反向字符串或一个包含逆序的元素的数组。
right(str, len) 返回字符串 len 中最右边的 str 个字符。
str rlike 正则表达式 如果 strregex 匹配,则返回 true。
rpad(expr, len[, pad]) 返回右侧填充了 exprpad,填充后整个字符的长度为 len
rtrim([trimStr,] str) 返回删除了尾随字符的 str
sentences(str[, lang, country]) str 拆分为一个数组,其中包含单词数组。
sha(expr) expr 的十六进制字符串形式返回 sha1 哈希值。
sha1(expr) expr 的十六进制字符串形式返回 sha1 哈希值。
sha2(expr, bitLength) expr 的十六进制字符串形式返回 SHA-2 系列的校验和。
soundex(expr) 返回字符串的 soundex 代码。
space(n) 返回由 n 个空格组成的字符串。
split(str, regex[, limit]) 根据匹配 str 的匹配项拆分 regex,并以最大的长度 limit 返回数组。
split_part(str,delim,partNum) str 围绕 delim 的次数拆分,并返回 partNum 部分。
startswith(expr, startExpr) 如果 trueexprSTRINGBINARY 开头,则返回 startExpr
string(expr) expr 值强制转换为 STRING
substr(expr, pos[, len]) 返回 expr 的子字符串(从 pos 开始,并且长度为 len)。
substr(expr FROM pos[ FOR len]) 返回 expr 的子字符串(从 pos 开始,并且长度为 len)。
substring(expr, pos[, len]) 返回 expr 的子字符串(从 pos 开始,并且长度为 len)。
substring(expr FROM pos[ FOR len]) 返回 expr 的子字符串(从 pos 开始,并且长度为 len)。
substring_index(expr, delim, count) 返回分隔符 expr 出现 count 次之前 delim 的子字符串。
to_binary(expr【, fmt】) 返回基于 expr 强制转换为 BINARY 的 fmt
to_char(numExpr,fmt) 返回使用格式设置 numExprSTRING 强制转换为 fmt 的值。”
to_varchar(numExpr,fmt) 返回使用格式设置 numExprSTRING 强制转换为 fmt 的值。”
translate(expr, from, to) 返回一个 expr,其中 from 内的所有字符都被替换为 to 中的字符。
trim([[BOTH | 前置 | 末尾] [trimStr] FROM] str) 剪裁字符串中的字符。
try_aes_decrypt(expr, key[, mode[, padding[, aad]]]) 解密使用 AES 加密生成的二进制文件 expr,并在出错时返回 NULL
try_to_binary(expr [, fmt]) 尝试将表达式转换为二进制(expr [, fmt]) 返回基于 expr 强制转换为 BINARYfmt;或者,如果输入无效,则返回 NULL
try_url_decode(str) application/x-www-form-urlencoded 格式转换回字符串,并在出现错误时返回 NULL
try_zstd_decompress(value) 返回使用 Zstandard 压缩技术解压缩的值;如果输入无效,则返回 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 格式。
zstd_compress(value, [level, [streaming_mode]]) 返回使用 Zstandard 压缩技术压缩的值。
zstd_decompress(值) 返回使用 Zstandard 压缩技术解压缩的值。

数字标量函数

函数 说明
~ expr 返回 NOT 的按位 expr 结果。
被除数/除数 返回 dividend 除以 divisor 的结果。
expr1 |expr2 返回 ORexpr1 的按位 expr2 结果。
- expr 返回 expr 的求反值。
expr1 - expr2 返回从 expr2 减去 expr1 得到的结果。
+ expr 返回 expr 的值。
expr1 + expr2 返回 expr1expr2 的总和。
股息 % 除数 返回在进行 dividend / divisor 运算后的余数。
expr1 ^ expr2 返回 OR (XOR)expr1 的按位异或 expr2 结果。
expr1 和 expr2 返回 ANDexpr1 的按位 expr2 结果。
multiplier * multiplicand 返回 multiplier 乘以 multiplicand 的结果。
abs(expr) 返回 expr 中数值的绝对值。
acos(expr) 返回 expr 的反余弦值 (arccosine)。
acosh(expr) 返回 expr 的反双曲余弦值。
asin(expr) 返回 expr 的反正弦值 (arcsine)。
asinh(expr) 返回 expr 的反双曲正弦值。
atan(expr) 返回 expr 的反正切 (arctangent)。
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]) 使用 expr 舍入模式返回舍入运算后的 HALF_EVEN
cbrt(expr) 返回 expr 的立方根。
ceil(expr[,targetScale]) 返回不小于 expr 的最小数,向上舍入到相对于小数点的 targetScale 位数。
ceiling(expr[, targetScale]) 返回不小于 expr 的最小数,向上舍入到相对于小数点的 targetScale 位数。
conv(num,fromBase,toBase) numfromBase 转换为 toBase
convert_timezone([sourceTz, ]targetTz, sourceTs) TIMESTAMP_NTZsourceTssourceTz 时区转换为 targetTz
cos(expr) 返回 expr 的余弦值。
cosh(expr) 返回 expr 的双曲余弦。
cot(expr) 返回 expr 的余切值。
csc(expr) 返回 expr 的余割。
十进制(expr) expr 值强制转换为 DECIMAL
degrees(expr) 将弧度转换为度。
divisor div dividend 返回 divisor 除以 dividend 所得结果的整数部分。
double(expr) expr 值强制转换为 DOUBLE
e() 返回常数 e
exp(expr) 返回 eexpr 次方。
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) 返回 expr 的对数(以 base 为底)。
log1p(expr) 返回 log(1 + expr)
log2(expr) 返回 expr 的对数(以 2 为底)。
log10(expr) 返回 expr 的对数(以 10 为底)。
mod(dividend,divisor) 返回在进行 dividend / divisor 运算后的余数。
nanvl(expr1, expr2) 如果不是 expr1,则返回 NaN,否则返回 expr2
negative(expr) 返回 expr 的求反值。
'nullifzero(expr)' 如果不为零,则返回 expr;否则返回 NULL
pi() 返回 pi。
pmod(dividend,divisor) 返回在进行 dividend / divisor 运算后的正余数。
positive(expr) 返回 expr 的值。
pow(expr1, expr2) expr1 提升为 expr2 的幂。
power(expr1, expr2) expr1 提升为 expr2 的幂。
radians(expr) expr(以度为单位)转换为弧度。
rand([种子]) 返回介于 0 和 1 之间的随机值。
randn([种子]) 从标准正态分布返回一个随机值。
random([种子]) 返回介于 0 和 1 之间的随机值。
rint(expr) expr 值返回舍入为整数的 DOUBLE
round(expr,[targetScale]) 使用 expr 舍入模式返回舍入运算后的 HALF_UP
sec(expr) 返回 expr 的正切。
shiftleft(expr, n) 返回按位左移 n 位后的结果。
shiftright(expr, n) 返回按位右移 n 位的带符号整数。
shiftrightunsigned(expr, n) 返回按位右移 n 位的无符号整数。
sign(expr) expr 为负数、0 或正数时返回 -1.0、0.0 或 1.0。
signum(expr) expr 为负数、0 或正数时返回 -1.0、0.0 或 1.0。
sin(expr) 返回 expr 的正弦值。
sinh(expr) 返回 expr 的双曲正弦。
smallint(expr) expr 值强制转换为 SMALLINT
sqrt(expr) 返回 expr 的平方根。
tan(expr) 返回 expr 的正切。
tanh(expr) 返回 expr 的双曲正切值。
tinyint(expr) expr 强制转换为 TINYINT
to_number(expr, fmt) 使用格式设置 expr 返回强制转换为 DECIMALfmt
try_add(expr1,expr2) 返回 expr1expr2 的和,或者,如果发生错误,则返回 NULL
try_divide(分红、除数) 返回 dividend 除以 divisor,或者,如果 NULL 为 0,则返回 divisor
try_mod(分红、除数) 返回在进行 dividend / divisor 运算后的余数,或者,如果 NULL 为 0,则返回 divisor
try_multiply(乘数, 被乘数) 在溢出时返回 multiplier 乘以 multiplicandNULL 的结果。
try_subtract(expr1,expr2) 返回在溢出时从 expr2expr1 减去 NULL 得到的结果。
try_to_number(expr,fmt) 返回使用格式设置 expr 强制转换为 DECIMALfmt,或者,如果 NULL 与格式不匹配,则返回 expr
uniform(expr1, expr2 [,seed]) 返回一个在指定数值范围内具有独立的同分布值的随机值。
width_bucket(expr、minExpr、maxExpr、numBuckets) 返回等宽直方图中某个值的 Bucket 编号。
zeroifnull(expr) 如果不为 expr,则返回 NULL;否则返回 0

聚合函数

函数 说明
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) 返回组中所有 OR 输入值的按位 BINARY
bool_and(expr) 如果 expr 中的所有值在组内都为 true,则返回 true。
bool_or(expr) 如果 expr 中的至少一个值在组内为 true,则返回 true。
collect_list(expr) 返回一个数组,该数组由组内 expr 中的所有值组成。
collect_set(expr) 返回一个数组,该数组由组内 expr 中的所有唯一值组成。
corr(expr1,expr2) 返回表示一组数字对之间的关联情况的皮尔逊系数。
count(*) 返回在组中检索到的行的总数,包括那些包含 null 的行。
count(expr[, ...]) 返回组中为其提供的表达式均为非 null 值的行的数目。
count_if(expr) 返回 expr 中组的 true 值数。
count_min_sketch(列,epsilon,置信度,种子) 返回具有 columnepsilonconfidenceseed 中的组中所有值的 count-min sketch。
covar_pop(expr1,expr2) 返回组中数字对的总体协方差。
covar_samp(expr1, expr2) 返回组中数字对的样本协方差。
every(expr) 如果组中 expr 的所有值均为 true,则返回 true。
first(expr[,ignoreNull]) 返回一组行的第一个 expr 值。
first_value(expr[,ignoreNull]) 返回一组行的第一个 expr 值。
histogram_numeric(expr, numBins) 基于 expr 计算具有 numBins 个箱的直方图,返回表示箱中心的对数组。
hll_sketch_agg(expr[,lgConfigK]) 返回用于计算近似非重复值计数的 HyperLogLog 草图。
hll_union_agg(expr[,allowDifferentLgConfigK]) 聚合一组行的 HyperLogLog 草图。
kurtosis(expr) 返回从组的值计算出的峰度值。
最后(expr[,忽略空值]) 返回一组行的最后一个 expr 值。
最后值(expr[,忽略空值]) 返回一组行的最后一个 expr 值。
listagg(expr[,delim]) [WITHIN GROUP (ORDER BY key [,...])] 返回组中所有 STRING 的值的串联结果是 BINARYexpr,并用 delim 作为分隔符。
max(expr) 返回组中 expr 的最大值。
max_by(expr1,expr2) 返回与组中 expr1 的最大值关联的 expr2 的值。
mean(expr) 返回从组的值计算出的平均值。
median(expr) 返回根据组的值计算出的中值。
min(expr) 返回组中 expr 的最小值。
min_by(expr1,expr2) 返回与组中 expr1 的最小值关联的 expr2 的值。
mode(expr [,deterministic]) 返回组中 NULL 的最常见值,而不是 expr
百分位数(expr, percentage [,frequency]) 返回位于指定 expr 处的 percentage 的确切百分位值。
percentile_approx(expr,percentage[,accuracy]) 返回组内 expr 的百分位近似值。
PERCENTILE_CONT(百分比) WITHIN GROUP (ORDER BY key) 返回组内 key 的插值百分位。
percentile_disc(百分比) WITHIN GROUP (ORDER BY key) 返回组内 key 的离散百分比。
regr_avgx(yExpr,xExpr) 返回从 xExprxExpryExpr 的组的值计算出的 NOT NULL 的平均值。
regr_avgy(yExpr、xExpr) 返回从 yExprxExpryExpr 的组的值计算出的 NOT NULL 的平均值。
regr_count(yExpr、xExpr) 返回组中非空值对 yExpr, xExpr 的个数。
regr_intercept(yExpr、xExpr) 返回组中单变量线性回归线的截距,其中 xExpryExpr 不为 NULL。
regr_r2(yExpr、xExpr) 返回 xExpryExpr 不是 NULL 的组值的决定系数。
regr_slope(yExpr、xExpr) 返回组中非 null 值对 yExprxExpr 的线性回归线的斜率。
regr_sxx(yExpr、xExpr) 返回 xExprxExpr 不为 NULL 的组中 yExpr 值的平方和。
regr_sxy(yExpr、xExpr) 返回从 yExprxExprxExpr 的组中的值计算的 yExprNOT NULL 乘积的总和。
regr_syy(yExpr、xExpr) 返回 yExprxExpr 不为 NULL 的组中 yExpr 值的平方和。
schema_of_json_agg(json[, options]) 以 DDL 格式返回组中 JSON 字符串的组合架构。
schema_of_variant_agg(variantExpr) 以 DDL 格式返回组中所有 VARIANT 值的组合架构。
偏度(expr) 返回从组的值计算出的偏度值。
some(expr) 如果组中至少有一个 expr 值是 true,则返回 true。
std(expr) 返回通过组中的值计算出的样本标准偏差。
stddev(expr) 返回通过组中的值计算出的样本标准偏差。
stddev_pop(expr) 返回从组的值计算出的总体标准偏差。
stddev_samp(expr) 返回从组的值计算出的样本标准偏差。
string_agg(expr[,delim]) [WITHIN GROUP (ORDER BY 关键字 [,...])] 返回组中所有 STRING 的值的串联结果是 BINARYexpr,并用 delim 作为分隔符。
sum(expr) 返回从组的值计算出的总和值。
try_avg(expr) 返回根据组的值计算出的平均值,如果溢出则返回 NULL
try_sum(expr) 返回根据组的值计算出的和,如果溢出则返回 NULL
var_pop(expr) 返回从组的值计算出的总体方差。
var_samp(expr) 返回从组的值计算出的样本方差。
方差(expr) 返回从组的值计算出的样本方差。

排名开窗函数

函数 说明
dense_rank() 返回某个值相对于分区中所有值的排名。
ntile(n) 将每个窗口分区的行分割为从 1 到至多 n 的 n 个 Bucket。
percent_rank() 计算分区中某个值的百分比排名。
rank() 返回某个值相对于分区中所有值的排名。
row_number() 根据窗口分区中的行顺序,为每一行分配唯一的顺序编号(从 1 开始)。

分析窗口函数

函数 说明
cume_dist() 返回某个值相对于分区中所有值的位置。
lag(expr[,offset[,default]]) 从分区中的前一行返回值 expr
lead(expr[,offset[,default]]) 从分区中的后续行返回值 expr
nth_value(expr, offset[, ignoreNulls]) 返回位于窗口中特定 expr 处的 offset 的值。

数组函数

函数 说明
arrayExpr[indexExpr] 返回数组 indexExpr 的位置 arrayExpr 处的元素。
aggregate(expr, start, merge[, finish]) 使用自定义聚合器聚合数组中的元素。
array([expr [, ...]]]) 返回一个数组,其中包含 expr 中的元素。
数组_附加(数组, 元素) 返回 array 追加的 elem
array_compact(array) array 中删除 NULL 值。
array_contains(数组, 值) 如果 array 包含 value,则返回 true。
array_distinct(array) array 中删除重复值。
array_except(array1,array2) 返回 array1 中(而不是 array2 中)的元素的数组。
array_insert(数组、索引、elem) 返回一个展开的 array,其中的 elem 插入到 index 位置。
array_intersect(array1,array2) 返回 array1array2 的交集中的元素的数组。
array_join(array,delimiter[,nullReplacement]) 串联 array 的元素。
array_max(数组) 返回 array 中的最大值。
array_min(数组) 返回 array 中的最小值。
array_position(array,element) 返回 element 中第一次出现 array 的位置。
array_prepend(数组, 元素) 返回以 array 为前缀的 elem
array_remove(array,element) element 中删除所有出现的 array
数组重复(元素,计数) 返回包含 elementcount 时间的数组。
数组大小(array) 返回 array 中的元素数量。
array_sort(数组,函数) 返回根据 array 排序的 func
array_union(array1,array2) 返回 array1array2 的并集中的元素的数组,不包含重复项。
arrays_overlap(array1,array2) 如果 array1array2 的交集不为空,则返回 true。
arrays_zip(array1【, ……】) 返回合并的结构数组,其中第 n 个结构包含输入数组的所有第 N 个值。
基数(expr) 返回 expr 的大小。
concat(expr1, expr2 [, ...]) 返回参数的串联。
element_at(arrayExpr,索引) 返回位于 arrayExpr 处的 index 的元素。
exists(expr, pred) 如果 pred 对于 expr 中的任一元素为 true,则返回 true。
explode(collection) 通过取消嵌套 collection 返回行。
explode_outer(collection) 使用 outer 语义通过取消嵌套 collection 返回行。
filter(expr,func) 使用函数 expr 筛选 func 中的数组。
flatten(arrayOfArrays) 将数组的数组转换为单个数组。
forall(expr, predFunc) 测试 predFunc 是否对数组中的所有元素都有效。
get(arrayExpr, index) 返回 arrayExpr 处的 index 元素,从 0 开始。
内联(输入) 将结构数组分解为一个表。
inline_outer(输入) 使用 outer 语义将结构数组分解为表。
posexplode(集合) 通过取消嵌套具有位置编号的数组来返回行。
posexplode_outer(集合) 使用 OUTER 语义,通过取消嵌套具有位置编号的数组来返回行。
reduce(expr,start,merge[,finish]) 使用自定义聚合器聚合数组中的元素。
反转(数组) 返回一个反向字符串或一个包含逆序的元素的数组。
sequence(start,stop,step) 生成一个数组,其中包含从 startstop(含)的元素,这些元素按 step 递增。
shuffle(array) 返回 expr 中数组的随机排列。
size(expr) 返回 expr 的基数。
slice(expr,start,length) 返回数组的子集。
sort_array(expr[,ascendingOrder]) 按排序顺序返回 expr 中的数组。
transform(expr, func) 使用函数 expr 转换 func 中数组中的元素。
try_element_at(arrayExpr,索引) 返回位于 arrayExpr 处的 index 的元素;如果 NULL 超出边界,则返回 index
zip_with(expr1,expr2,func) 使用 expr1 按元素将 expr2func 中的数组合并到一个数组中。

映射函数

函数 说明
mapExpr[keyExpr] 返回映射 keyExprmapExpr 处的值。
基数(expr) 返回 expr 的大小。
element_at(mapExpr,key) 返回 mapExprkey 值。
explode(collection) 通过取消嵌套 expr 返回行。
explode_outer(集合) 使用 outer 语义通过取消嵌套 expr 返回行。
map([{key1, value1}[, ...]]) 创建具有指定键值对的映射。
map_concat([expr1[,] ...]) 返回所有 expr 映射表达式的并集。
map_contains_key(地图,键) 如果 true 包含 map,则返回 key;否则返回 false
map_entries(地图) 返回 map 中所有条目的无序数组。
map_filter(expr, func) 使用 expr 函数在 func 中筛选映射中的条目。
map_from_arrays(keys, values) 创建具有 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) 使用 expr 函数在 func 中转换映射中的键。
transform_values(expr, func) 使用 expr 函数在 func 中转换映射中的值。
try_element_at(mapExpr,key) 返回 mapExprkey 值;如果 NULL 不存在,则返回 key

日期、时间戳和时间间隔函数

有关日期和时间戳格式的信息,请参阅日期/时间模式

函数 说明
intervalExpr / divisor 返回除以 divisor 的间隔。
- intervalExpr 返回 intervalExpr 的求反值。
intervalExpr1 - intervalExpr2 返回从 intervalExpr2 减去 intervalExpr1 得到的结果。
datetimeExpr1 - datetimeExpr2 返回从 datetimeExpr2 减去 datetimeExpr1 得到的结果。
+ intervalExpr 返回 intervalExpr 的值。
intervalExpr1 + intervalExpr2 返回 intervalExpr1intervalExpr2 的总和。
intervalExpr * multiplicand 返回 intervalExpr 乘以 multiplicand 的结果。
abs(expr) 返回 expr 中间隔值的绝对值。
add_months(startDate,numMonths) 返回在 numMonths 之后 startDate 的日期。
curdate() 返回查询计算开始时的当前日期。
current_date() 返回查询计算开始时的当前日期。
current_timestamp() 返回查询计算开始时的当前时间戳。
current_timezone() 返回当前会话的本地时区。
date(expr) expr 值强制转换为 DATE。
date_add(startDate,numDays) 返回在 numDays 之后的日期 startDate
date_add(单位、值、expr) valueunit 添加到时间戳 expr
date_diff(单位, 开始日期, 结束日期) 返回两个以 unit 为单位的时间戳之间的差异。
date_format(expr,fmt) 将时间戳转换为 fmt 格式的字符串。
date_from_unix_date(天) 根据自 1970-01-01 以来的天数创建日期。
date_part(field,expr) 提取部分日期、时间戳或间隔。
date_sub(startDate,numDays) 返回在 numDays 之前的日期 startDate
date_trunc(单位,expr) 返回已截断到 unit 中指定的单位的时间戳。
dateadd(startDate,numDays) 返回在 numDays 之后的日期 startDate
dateadd(unit, value, expr) valueunit 添加到时间戳 expr
datediff(endDate,startDate) 返回从 startDateendDate 的天数。
datediff(单位, 开始, 结束) 返回两个以 unit 为单位的时间戳之间的差异。
day(expr) 返回日期或时间戳的月份日期。
dayname(expr) 返回给定日期的星期几的三个字母英语首字母缩略词。
dayofmonth(expr) 返回日期或时间戳的月份日期。
dayofweek(expr) 返回日期或时间戳的星期几。
dayofyear(expr) 返回日期或时间戳的年份日期。
divisor div dividend 返回间隔 divisor 除以间隔 dividend 的整数部分。
extract(field FROM source) 返回 fieldsource
from_unixtime(unixTime,fmt) 返回 unixTime 中的 fmt
from_utc_timestamp(expr,timezone) 针对 UTC 时间戳 expr 返回 timeZone 时间戳。
getdate() 返回查询计算开始时的当前时间戳。
hour(expr) 返回时间戳的小时部分。
last_day(expr) 返回日期所属月份的最后一天。
make_date(年、月、日) yearmonthday 字段创建日期。
make_dt_interval([days[, hours[, mins[, secs]]]]) // 创建一个时间间隔的函数,参数依次为天、小时、分钟和秒。 dayshoursminssecs 创建日期时间间隔。
make_interval(年, 月, 周, 天, 小时, 分钟, 秒) 已弃用:从 yearsmonthsweeksdayshoursminssecs 创建时间间隔。
make_timestamp(year,month,day,hour,min,sec[,timezone]) yearmonthdayhourminsectimezone 字段创建时间戳。
make_ym_interval([years[, month]]) yearsmonths 创建年月时间间隔。
分钟(expr) 返回 expr 中时间戳的分钟部分。
month(expr) 返回 expr 中时间戳的月份部分。
months_between(expr1,expr2[,roundOff]) 返回 expr1expr2 中的日期或时间戳之间已过去的月数。
next_day(expr,dayOfWeek) 返回晚于 expr 并已按 dayOfWeek 中命名的第一个日期。
now() 返回查询计算开始时的当前时间戳。
quarter(expr) 返回 expr 的年度的第几季(范围为 1 到 4)。
second(expr) 返回 expr 中时间戳的第二个分量。
session_window(expr, gpDuration) 通过时间戳表达式创建会话窗口。
sign(expr) 当间隔 expr 为负数、0 或正数时分别返回 -1.0、0.0 或 1.0。
signum(expr) 当间隔 expr 为负数、0 或正数时分别返回 -1.0、0.0 或 1.0。
时间差(单位, 开始, 停止) 返回两个以 unit 为单位的时间戳之间的差异。
timestamp(expr) expr 强制转换为 TIMESTAMP
timestamp_micros(expr) 创建自 UTC 纪元以来的时间戳(expr 微秒)。
timestamp_millis(expr) 创建自 UTC 纪元以来的时间戳 expr 毫秒。
timestamp_seconds(expr) 创建自 UTC 纪元以来的时间戳(expr 秒)。
timestampadd(unit, value, expr) valueunit 添加到时间戳 expr
timestampdiff(单位, 开始, 停止) 返回两个以 unit 为单位的时间戳之间的差异。
to_date(expr[,fmt]) 返回使用可选格式设置将 expr 转换为日期后的值。
to_timestamp(expr[,fmt]) 使用可选格式将 expr 强制转换返回到某个时间戳。
to_unix_timestamp(expr[,fmt]) expr 中的时间戳返回为 UNIX 时间戳。
to_utc_timestamp(expr,timezone) 针对 UTC 时间戳 expr 返回 timezone 时间戳。
trunc(expr, fmt) 返回一个日期,其时间部分已截断到格式模型 fmt 所指定的单位。
try_add(expr1,expr2) 返回 expr1expr2 的和,或者,如果发生错误,则返回 NULL。
try_divide(分红、除数) 返回 dividend 除以 divisor,或者,如果 divisor 为 0,则返回 NULL。
try_multiply(乘数, 被乘数) 在溢出时返回 multiplier 乘以 multiplicandNULL 的结果。
try_subtract(expr1,expr2) 返回在溢出时从 expr2expr1 减去 NULL 得到的结果。
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(窗口时间) 返回由 windowsession_window 函数生成的滑动窗口的非独占结束时间。

H3 地理空间函数

有关 H3 地理空间函数的信息,请参阅 H3 地理空间函数

Cast 函数和构造函数

有关在类型之间进行转换的信息,请参阅 cast 函数try_cast 函数

函数 说明
array([expr [, ...]]]) 返回一个数组,其中包含 expr 中的元素。
bigint(expr) expr 值强制转换为 BIGINT
binary(expr) expr 值强制转换为 BINARY
boolean(expr) expr 强制转换为 BOOLEAN
cast(expr AS 类型) 将值 expr 强制转换为目标数据类型 type
expr :: type 将值 expr 强制转换为目标数据类型 type
date(expr) expr 值强制转换为 DATE
十进制(expr) expr 值强制转换为 DECIMAL
double(expr) expr 值强制转换为 DOUBLE
float(expr) expr 值强制转换为 FLOAT
int(expr) expr 值强制转换为 INTEGER
make_date(年、月、日) yearmonthday 字段创建日期。
make_dt_interval([days[, hours[, mins[, secs]]]]) // 创建一个时间间隔的函数,参数依次为天、小时、分钟和秒。 dayshoursminssecs 创建日期时间间隔。
make_interval(年, 月, 周, 天, 小时, 分钟, 秒) yearsmonthsweeksdayshoursminssecs 创建间隔。
make_timestamp(year,month,day,hour,min,sec[,timezone]) yearmonthdayhourminsectimezone 字段创建时间戳。
make_ym_interval([years[, month]]) yearsmonths 创建年月时间间隔。
map([{key1, value1} [, ...]]) 创建具有指定键值对的映射。
named_struct({name1, val1} [, ...]) 创建具有指定的字段名称和值的结构。
smallint(expr) expr 值强制转换为 SMALLINT
string(expr) expr 值强制转换为 STRING
struct(expr1 [, ...]) 创建具有指定字段值的 STRUCT
tinyint(expr) expr 强制转换为 TINYINT
timestamp(expr) expr 强制转换为 TIMESTAMP
to_char(expr, fmt) 返回使用格式设置 exprSTRING 强制转换为 fmt 的值。”
to_date(expr[,fmt]) 返回使用可选格式设置将 expr 转换为日期后的值。
to_number(expr, fmt) 使用 expr 格式返回 DECIMA 强制转换为 fmtL。
to_timestamp(expr[,fmt]) 使用可选格式将 expr 强制转换返回到某个时间戳。
to_varchar(expr, fmt) 返回使用格式设置 exprSTRING 强制转换为 fmt 的值。”
try_cast(expr AS type) 将值 expr 安全强制转换为目标数据类型 type
try_to_number(expr, fmt) 使用 expr 格式返回 DECIMAL 强制转换为 fmt,或者如果 NULL 无效则返回 expr

CSV 和 Avro 函数

函数 说明
from_avro(avroBin, jsonSchema[, options]) 根据 avroBinjsonSchema 返回结构值。
from_csv(csvStr, schema[, options]) 返回具有 csvStrschema 的结构值。
schema_of_csv(csv[, options]) 返回 DDL 格式的 CSV 字符串的架构。
to_avro(expr[, options]) 返回具有指定结构值的 Avro 二进制值。
to_csv(expr[, options]) 返回具有指定结构值的 CSV 字符串。

JSON 函数

函数 说明
jsonStr : jsonPath 返回从 jsonStr 中提取的字段。
from_json(jsonStr, schema[, options]) 返回具有 jsonStrschema 的结构值。
get_json_object(expr,path) JSON 中提取 path 对象。
json_array_length(jsonArray) 返回最外层 JSON 数组中的元素数。
json_object_keys(jsonObject) 以数组形式返回最外层 JSON 对象的所有键。
json_tuple(jsonStr, path1 [, ...]) 以元组形式返回多个 JSON 对象。
parse_json(jsonStr) VARIANT 返回一个 jsonStr 值。
schema_of_json(jsonStr[, options]) 以 DDL 格式返回 JSON 字符串的架构。
schema_of_json_agg(jsonStr[,options]) 以 DDL 格式返回组中 JSON 字符串的组合架构。
to_json(expr[, options]) 返回一个 JSON 字符串,带有 STRUCT 中指定的 VARIANTexpr

VARIANT 函数

函数 说明
variantExpr : jsonPath 使用 JSON 路径返回从 variantExpr 中提取的字段。
is_variant_null(variantExpr) 测试 variantExpr 是否为 VARIANT 编码的 NULL
parse_json(jsonStr) VARIANT 返回一个 jsonStr 值。
schema_of_variant(variantExpr) 返回 DDL 格式的 VARIANT 表达式的架构。
schema_of_variant_agg(variantExpr) 以 DDL 格式返回组中所有 VARIANT 值的组合架构。
to_json(expr[, options]) 返回一个 JSON 字符串,带有 STRUCT 中指定的 VARIANTexpr
try_parse_json(jsonStr) 如果可能,从 VARIANT 返回 jsonStr 值。 如果不可能,则返回 NULL
try_variant_get(variantExpr,path,type) type 指定的 variantExpr 中提取类型为 path 的值,如果无法将值强制转换为目标类型,则提取 NULL
variant_explode(input) 通过取消嵌套 input 返回行集。
variant_explode_outer(输入) 使用 outer 语义通过取消嵌套 input 返回行集。
variant_get(variantExpr,path,type) type 中提取由 variantExpr 指定的 path 类型的值。

XPath 和 XML 函数

函数 说明
from_xml(xmlStr, schema[, options]) 返回使用 xmlStrschema 分析的结构值。
schema_of_xml(xmlStr[, options]) 以 DDL 格式返回 XML 字符串的架构。
xpath(xml, xpath) 返回与 xml 匹配的 xpath 节点内的值。
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 节点的内容。

读取函数

函数 说明
read_files(path, [optionKey => optionValue] [, ...]) 读取云存储中的数据文件,并返回表格格式。
read_kafka([optionKey => optionValue][, ...]) 从 Apache Kafka 群集读取记录,并返回表格格式。
read_kinesis({parameter => value}[,…]) 返回一个表,其中包含从一个或多个流的 Kinesis 中读取的记录。
read_pulsar({optionKey => optionValue} [,……]) 返回一个表,其中包含从 Pulsar 读取的记录。
read_state_metadata(path) 返回一个表,其中包含表示流式处理查询状态元数据的行。
read_statestore(path [, option_key => option_value] […]) 从流式处理查询的状态存储中返回记录。

其他函数

函数 说明
assert_true(expr) 如果 expr 不为 true,则返回错误。
CASE expr { WHEN opt1 THEN res1 } \ [ELSE def]结束 返回等于 resN 的第一个 optNexpr;如果没有任何匹配项,则返回 def
CASE { WHEN cond1 THEN res1 } \ [ELSE def]结束 返回计算结果为 true 的第一个 resNcondN;如果找不到任何匹配项,则返回 def
cloud_files_state( { TABLE(表) | 检查点 } ) 返回自动加载程序 cloud_files 源的文件级状态。
coalesce(expr1, expr2 [, ...]) 返回第一个非 null 参数。
collations() 返回可用排序规则的列表。
立方体(expr1 [, …]) 使用指定的表达式列创建多维多维数据集。
current_catalog() 返回当前目录。
current_database() 返回当前架构。
current_metastore() 返回当前的 Unity Catalog 元存储 ID。
当前接收者(键) 返回通过 Delta Sharing 共享的视图中当前接收者的属性。
current_schema() 返回当前架构。
current_user() 返回执行语句的用户。
current_version() 返回当前版本的 Azure Databricks。
decode(expr, { key, value } [, ...][,defValue]) 返回与键匹配的值。
elt(index, expr1 [, ...] ) 返回第 n 个表达式。
equal_null(expr1,expr2) 如果 true 等于 expr1 或两个表达式都为 expr2,则返回 NULL,否则返回 false
event_log( { TABLE(table) | pipeline_id } ) 返回具体化视图、流式处理表或 DLT 管道的刷新历史记录表。
greatest(expr1, expr2 [, ...]) 返回所有参数的最大值(跳过 null 值)。
grouping(col) 指示 GROUPING SETROLLUPCUBE 中指定的列是否表示小计。
grouping_id([col1 [, ...]]) 返回一组列的分组级别。
hash(expr1 [, ...]) 返回参数的哈希值。
hll_sketch_estimate(expr) 估计在 HyperLogLog 草图中收集的非重复值的数量。
hll_union(expr1,expr2 [,allowDifferentLgConfigK]) 合并两个 HyperLogLog 草图。
http_request({parm => expr} [, ...]) 使用定义的 HTTP 连接发出 HTTP 请求。
java_method(class, method[, arg1 [, ...]]]) 使用反射调用某个方法。
if(cond,expr1,expr2) 如果 expr1cond,则返回 true;否则返回 expr2
iff(cond, expr1, expr2) 如果 expr1cond,则返回 true;否则返回 expr2
ifnull(expr1, expr2) 如果 expr2expr1,则返回 NULL;否则返回 expr1
input_file_block_length() 返回所读取块的长度(以字节为单位)。
input_file_block_start() 返回正在读取的块的起始偏移量(以字节为单位)。
input_file_name() 返回正在读取的文件的名称。如果无法获得该名称,则返回空字符串。
is_account_group_member(组) 如果当前用户是帐户级别的组的成员,则返回 true。
is_member("group") 如果当前用户是工作区级别的组的成员,则返回 true。
isnull(expr) 如果 trueexpr,则返回 NULL
isnotnull(expr) 如果 true 不为 expr,则返回 NULL
least(expr1, expr2 [, ...]) 返回所有参数的最小值(跳过 null 值)。
list_secrets([scopeStr]) 返回用户有权从 Databricks 机密服务查看的所有或一个范围内的密钥。
luhn_check(numStr) 如果 true 通过 Luhn 算法检查,则返回 numStr
monotonically_increasing_id() 返回单调递增的 64 位整数。
nullif(expr1, expr2) 如果 NULL 等于 expr1,则返回 expr2;否则返回 expr1
nvl(expr1,expr2) 如果 expr2expr1,则返回 NULL;否则返回 expr1
nvl2(expr1, expr2, expr3) 如果 expr2 不是 expr1,则返回 NULL,否则返回 expr3
raise_error(expr) 使用 expr 作为消息引发异常。
范围(结束) 返回指定范围内值的表。
range(start,end[,step[,numParts]]) 返回指定范围内值的表。
reflect(class, method[, arg1 [, ...]]]) 使用反射调用某个方法。
secret(scope, key) scope中提取具有给定 key 的机密值。
session_user() 返回连接到 Azure Databricks 的用户。
spark_partition_id() 返回当前分区 ID。
sql_keywords() 返回 Azure Databricks 中的 SQL 关键字集。
stack(numRows, expr1 [, ...]) expr1exprN 分隔成 numRows 行。
table_changes(table_str,start [, end]) 返回已启用更改数据馈送的 Delta Lake 表的更改日志。
try_reflect(class, method[, arg1 [, ...]]) 使用反射调用一个方法,如果方法失败,则返回 NULL
try_secret(范围、密钥) scope中提取具有给定 key 的机密值,如果无法检索密钥,则为 NULL
typeof(expr) expr 的数据类型返回 DDL 格式的类型字符串。
user() 返回执行语句的用户。
uuid() 返回全局唯一标识符 (UUID) 字符串。
window(expr, width[, 步骤 [, start]]) 通过时间戳表达式创建基于跳跃的滑动窗口。
xxhash64(expr1 [, ...]) 返回参数的 64 位哈希值。
version() 返回 Apache Spark 版本。