tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们

Presto 内置函数

PDF
聚焦模式
字号
最后更新时间: 2024-08-07 17:34:43
数据湖计算 DLC 在 统一函数 之外,同时支持 Presto 的内置函数。

如何开启 Presto 内置函数应用

途径一:在数据探索对数据引擎进行函数配置

1. 登录数据湖计算 DLC 控制台,选择服务地域。
2. 进入数据探索,选择数据引擎,当引擎内核为 Presto 时,可在高级配置中选择参数 USEHIVEFUNCTION,将该参数配置为 false 即可在使用该数据引擎进行 SQL 任务时使用 Presto 内置函数。


注意
在当前查询 session,所有使用该数据引擎的查询任务皆可使用 Presto 内置函数。

途径二:在 SQL 语句中添加参数

如您希望某个 SQL 任务调用 Presto 内置函数,可通过在 SQL 任务中添加配置信息实现。 示例:
SELECT/*+OPTIONS('useHiveFunction'='false')*/prestofunc(xx)

途径三:使用 API 时增加配置参数

在 task 结构体中 config 中设置 kv,useHiveFunction=false。

示例:
Stringstatement="SELECTdate_add('week',3,TIMESTAMP'2001-08-2203:04:05.321')";
TasksInfotask=newTasksInfo();
task.setTaskType("SQLTask");
task.setSQL(Base64.getEncoder().encodeToString(statement.getBytes()));
//添加以下参数配置
KVPairpair=newKVPair();
pair.setKey("useHiveFunction");
pair.setValue("false");
task.setConfig(newKVPair[]{pair});

CreateTasksRequestrequest=newCreateTasksRequest();
request.setDatabaseName("");
request.setDataEngineName(PRESTO_ENGINE);
request.setTasks(task);
参考 API 文档:任务创建

途径四:使用 JDBC 进行任务创建时添加参数

在 JDBCURL 路径中添加 &presto.USEHIVEFUNCTION=true 参数或 info.setProperty("presto.USEHIVEFUNCTION","false");
Connectionconnection=
DriverManager.getConnection("jdbc:dlc:dlc.tencentcloudapi.com?task_type=SQLTask&x省略中间参数xx&presto.USEHIVEFUNCTION=true",info);
或者
info.setProperty("presto.USEHIVEFUNCTION","false");
info.setPropertv("user","");
info.setProperty("password","");

支持的 Presto 内置函数列表

数学函数

函数名称
返回值
函数功能描述
abs(x)
与 x 一致
返回x的绝对值
cbrt(x)
double
返回 x 的立方根
ceil(x) | ceiling(x)
与 x 一致
返回 x 向上最接近的整数。例如:ceil(2.2); -->3
cosine_similarity(x, y)
double
返回向量 x 和 y 的相似度
例如:SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0])); -->1.0
degrees(x)
double
将弧度转换为角度
e()
double
返回常数 e 
exp(x)
double
返回 e 的x次方
floor(x)
与 x 一致
返回 x 向下最接近的整数。例如:floor(2.2); -->2
ln(x)
double
返回x的自然对数
log2(x)
double
返回以 2 为底的 x 的对数
log10(x)
double
返回以 10 为底的 x 的对数
mod(n, m)
与 n 一致
返回 n 除以 m 的余数
pi()
double
返回常数Pi
pow(x, p) | power(x, p)
double
返回 x 的 p 次幂
radians(x)
double
将角度x(以度为单位)转换为弧度
rand() | random()
double
返回 0.0 <= x < 1.0 范围内的随机值。
random(n)
与 n 一致
返回介于 0 和 n (不包含n)之间的随机数 
secure_rand() | secure_random()
double
返回0.0 <= x < 1.0范围内的加密随机值
secure_random(lower, upper)
与 lower 一致
返回范围为 lower <= x < upper 的加密随机值,其中lower < upper
round(x)
与 x 一致
返回x四舍五入到最接近的整数
round(x, d)
与 x 一致
返回x四舍五入到小数点后 d 位
sign(x)
与 x 一致
返回 x 所对应的正负号,x > 0 返回1;x< 0,返回-1;x=0, 返回 0
sqrt(x)
double
返回 x 的平方根
truncate(x)
bigint
返回截取小数点后的数
例如:truncate(4.9) -->4
truncate(x, n)
double
返回 x 截取小数点后n位。n<0时,从小数点左边截取
例如:truncate( 12.333, -1) --> 10.0;truncate( 12.333,0) --> 12.0;truncate( 12.333,1) --> 12.3;

二进制函数

函数名称
返回值
函数功能描述
length(b)
bigint
以字节为单位,返回 b 的二进制长度
concat(b1, ..., bN)
varbinary
返回连接b1,…,bN的二进制值
substr(b, start)
varbinary
返回从 b 中 start 位开始截取二进制值,start > 0 时从开头截取,star t< 0 时从末尾开始截取
substr(b, start, length)
varbinary
返回从 b 中 start 位开始截取 length 长度 的二进制值,start > 0 时从开头截取,star t< 0 时从末尾开始截取
to_base64(b)
varchar
将二进制数据 b 转为 base64 字符串
from_base64(string) 
varbinary
将 base64 编码的字符串转为二进制数据
to_base64url(b)
varchar
使用URL安全字符,将二进制数据 b 转为 base64 字符串
from_base64url(string)
varbinary
使用URL安全字符,将 base64 编码的字符串转为二进制数据
from_base32(string)
varbinary
将 base32 编码的字符串转为二进制数据
to_base32(b)
varchar
将二进制数据 b 转为 base32 字符串
to_hex(b)
varchar
将二进制数据 b 转为16进制字符串
from_hex(string)
varbinary
将 16进制编码的字符串转为二进制数据
lpad(b, size, padb) 
varbinary
返回在 b 的左边拼接 padb ,直到长度达到 size的二进制数
rpad(b, size, padb)
varbinary
返回在 b 的右边拼接 padb ,直到长度达到 size的二进制数
crc32(b)
bigint
使用CRC32算法计算表达式的循环冗余校验值
md5(b)
varbinary
计算二进制 b 的 md5 值
sha1(b)
varbinary
计算二进制 b 的 sha1 值
sha256(b)
varbinary
计算二进制 b 的 sha256 值
sha512(b)
varbinary
计算二进制 b 的 sha512 值
xxhash64(b)
varbinary
计算二进制 b 的 xxhash64 值

位运算函数

函数名称
返回值
函数功能描述
bit_count(x, bits)
bigint
返回 bit 在 x 中的位数
bitwise_and(x, y)
bigint
返回 x , y 的与
bitwise_not(x)
bigint
返回 x 的按位取反
bitwise_or(x, y)
bigint
返回 x, y的或
bitwise_xor(x, y)
bigint
返回 x, y的异或
bitwise_left_shift(value, shift)
与输入一致
返回 value 的左移动 shift 位的值
例如:bitwise_left_shift(TINYINT '7', 2) --> 28
bitwise_right_shift(value, shift)
与输入一致
返回 value 的右移动 shift 位的值
例如:bitwise_right_shift(TINYINT '7', 2) -->1

字符串函数

函数名称
返回值
函数功能描述
chr(n)
varchar
返回 n 的 Unicode 字符
codepoint(string)
integer
返回字符串的Unicode值
例如:codepoint('0') -->48
concat(string1, ..., stringN)
varchar
返回 string1,….,stringN的连接字符串
length(string)
bigint
返回字符串的长度
hamming_distance(string1, string2)
bigint
返回两个(相同长度)字符串对应位置的不同字符的数量
例如:hamming_distance(abc, art)  -->2
levenshtein_distance(string1, string2)
bigint
返回两个字串之间,由一个转成另一个所需的最少编辑(插入、删除、替换)的次数
例如: levenshtein_distance('ab', 'abcde') -->3
lower(string)
varchar
返回string转为小写后的字符串
upper(string)
varchar
返回string转为大写后的字符串
ltrim(string)
varchar
从字符串中删除左边空格
rtrim(string)
varchar
返回从字符串中删除后面空格
trim(string)
varchar
返回删除字符串中的空格的字符串
replace(string, search)
varchar
从字符串中删除所有search字符
replace(string, search, replace)
varchar
用 replace 字符串替换 search 字符串
例如:replace('abcavc', ‘a', ‘c') -->'cbccvc'
reverse(string)
varchar
返回字符的反向排列
例如:reverse('abc') -->'cba'
lpad(string, size, padstring)
varchar
在 string 的左边拼接 padstring,直到字符串长度达到size。如果有size小于 string,则将string剪切为长度size的字符串。
rpad(string, size, padstring)
varchar
在 string 的右边拼接 padstring,直到字符串长度达到达到size。如果有size小于 string,则将string剪切为长度size的字符串。
split(string, delimiter)
array
返回 delimiter 分割字符串后的一个数组
split(string, delimiter, limit)
array
返回 delimiter 分割字符串后按 limit 大小限制的数组,limit > 0,数组最后一个元素包含字符串中的所有剩余内容
例如:select split('ab-cd-efg', '-', 2) -->['ab','cd-efg']
split_part(string, delimiter, index)
varchar
返回 delimiter 分割字符串后的数组中,index 位置的字符串,字段索引从 1 开始。如果 index >数组长度,则返回 null
例如:select split_part('ab-cd-efg', '-', 2) -->'cd'
split_to_map(string, entryDelimiter, keyValueDelimiter)
map<varchar, varchar>
返回 entryDelimiter 和 keyValueDelimiter 拆分字符串后的map
例如:select split_to_map('a:1,b:2', ',', ':') -->{'a':'1','b':'2'}
split_to_map(string, entryDelimiter, keyValueDelimiter, function(K, V1, V2, R))
map<varchar, varchar>
返回 entryDelimiter 和 keyValueDelimiter 拆分字符串后的map,如果有重复key,则根据function指定的规则返回key对应的value
例如:split_to_map('a:1,b:2;a:3',‘,' , ':’, (k, v1, v2) -> v1)-->{'a':'1','b':'2'}
substr(string, start)
varchar
返回字符串 string 中 start 位置之后的字符串。位置从1开始, start <0时,从字符串末尾开始计数
substr(string, start, length)
varchar
返回字符串 string 中 start 位置开始 length 长度的字符串。位置从1开始, start <0时,从字符串末尾开始计数
position(substring IN string)
bigint
返回string中substring的第一个出现的位置。位置从1开始。如果未找到,则返回0
strpos(string, substring)
bigint
返回string中substring的从左向右第一次出现的位置。位置从1开始。如果未找到,则返回0。
例如:strpos('abcdefg', 'a') -->1
strpos(string, substring, instance)
bigint
返回string中substring的从左向右第 instance 次出现的位置。instance >0 , 位置从1开始。如果未找到,则返回0。
例如:strpos('abcaefg', 'ab',2) -->0
strrpos(string, substring)
bigint
返回string中substring的从右向左第一次出现的位置。位置从1开始。如果未找到,则返回0
例如:strpos('abcdefg', 'a') -->7
strrpos(string, substring, instance)
bigint
返回string中substring的从右向左第 instance 次出现的位置。instance >0 , 位置从1开始。如果未找到,则返回0。
例如:strpos('abcaefg', 'a',2) -->0
to_utf8(string)
varbinary
将字符串转为utf8编码的二进制数
from_utf8(binary)
varchar
将二进制数转为utf8编码的字符串,无效字符用Unicode字符U+FFFD替换
from_utf8(binary, replace)
varchar
将二进制数转为utf8编码的字符串,无效字符用replace替换

日期时间函数

函数名称
返回值
函数功能描述
current_date
date
返回当前日期
current_time
time
返回当前带时区的时间
current_timestamp
timestamp
返回当前带时区的时间戳
current_timezone()
varchar
返回当前时区
date(x)
date
返回当前日期
last_day_of_month(x)
date
返回本月的最后一天
from_unixtime(unixtime)
timestamp
返回 unix 时间戳
例如:from_unixtime(1475996660) -->2016-10-09 15:04:20.000
to_unixtime(timestamp)
double
返回 timestamp 的 unix时间戳
from_unixtime(unixtime, string)
timestamp
返回 unixtime的时间戳,string指定时区
例如:from_unixtime(1617256617,'Asia/Shanghai') -->2021-04-01 13:56:57.000 Asia/Shanghai
from_iso8601_timestamp(string)
timestamp
以 iso8601 格式将 string 转为时间戳 
from_iso8601_date(string)
date
以 iso8601 格式将 string 转为日期
localtime
time
返回当前时间
localtimestamp
timestamp
返回当前时间的时间戳
now()
timestamp
返回当前带时区的时间戳
to_iso8601(x)
varchar
返回 x 的iso8601 格式的字符串,x 可以为日期、时间戳或带时区的时间戳
date_trunc(unit, x)
与输入一致
返回 以unit为单位截取x的时间,unit 为 second、minute、hour、day、week、month、quarter、year.
例如:date_trunc('hour', TIMESTAMP '2020-03-17 02:09:30') --> '2020-03-17 02:00:00'
date_add(unit, value, timestamp)
与输入一致
返回 加减相应单位的间隔时间 算出新的时间戳, value >0 表示加,value < 0 表示减.
unit 为 millisecond、second、minute、hour、day、week、month、quarter、year.
例如:date_add('hour', 2, cast ('2023-07-20 20:22:22.022' as timestamp) -->'2023-07-20 22:22:22.022'
date_diff(unit, timestamp1, timestamp2)
bigint
返回两个时间戳相差(指定单位的)时间。unit 为 millisecond、second、minute、hour、day、week、month、quarter、year.
例如:date_diff('hour', cast ('2023-07-01 22:22:22' as timestamp) , cast ('2023-07-03 22:22:22' as timestamp) -->48
extract(field FROM x)
bigint
返回根据field 提取 x的时间,field可以为:year、quarter、month、week、day、dow、doy、yow、hour、minute、second、timezone_hour、timezone_minute、day_of_week、day_of_year、day_of_month
例如:extract(year from current_date) 2023
day(x)
bigint
返回 x 是月的第几天
day_of_month(x)
bigint
返回 x 是月的第几天
day_of_week(x)
bigint
返回 x 是一周的第几天,范围为1-7
day_of_year(x)
bigint
返回 x 是年的第几天
dow(x)
bigint
返回 x 是周的第几天。同 day_of_week(x)
doy(x)
bigint
返回 x 是年的第几天。同 day_of_year(x)
hour(x)
bigint
返回 x 是一天中的第几小时,范围 0-23
millisecond(x)
bigint
返回 x 是一秒中的第几毫秒
minute(x)
bigint
返回 x 是一小时中的第几分钟
month(x)
bigint
返回 x 是一年中的第几个月
quarter(x)
bigint
返回 x 是一年中的第几季度
second(x)
bigint
返回 x 是一分钟中的第几秒
week(x)
bigint
返回 x 是一年中的第几周
week_of_year(x)
bigint
返回 x 是一年中的第几周
year(x)
bigint
返回 x 的年份

数组函数

函数名称
返回值
函数功能描述
array_distinct(x)
array
从数组中删除重复的值x。
array_intersect(x, y)
array
返回 x 和 y 的交集中的不重复元素。
array_union(x, y)
array
返回 x 和 y 的并集中的不重复元素。
array_except(x, y)
array
返回属于 x 但不属于 y 的不重复元素。(差集)
array_join(x, delimiter, null_replacement)
varchar
使用delimiter连接 x 数组元素并用null_replacement来填充数组里面的空值。null_replacement为可选字符
array_max(x)
x
返回输入数组的最大值
array_min(x)
x
返回输入数组的最小值
array_position(x, element)
bigint
返回数组 x 中第一次出现 element 的位置(数字)(如果未找到,则返回0)
array_remove(x, element)
array
删除数组 x 中和element相同的所有元素
array_sort(x)
array
返回 x 的排序结果。x的元素必须是可排序的。空元素将放置在返回数组的末尾
array_sort(array(T), function(T, T, int))
array(T)
返回 array 根据比较函数function排序的结果
例如:array_sort(ARRAY [3, 2, 5, 1, 2], (x, y) -> IF(x < y, 1, IF(x = y, 0, -1))) -->[5, 3, 2, 2, 1]
arrays_overlap(x, y)
布尔值
判断数组 x 和 y 是否有任何共同的非空元素
cardinality(x)
bigint
返回数组的基数(大小)
concat(array1,array2,…,arrayN)
array
连接数组array1,array2,...,arrayN
contains(x, element)
布尔值
判断数组 x 是否包含 element
element_at(array(E),index)
E
返回 array数组中 index 位置的元素。如果index> 0,从左向右计数,index < 0, 从右向左计数
filter(array(T), funciton(T, boolean))
array(T)
返回用函数function返回true的元素构造的新数组
例如:filter( array[5, -6, NULL, 7], x -> x > 0); --> [5, 7]
repeat(element,count)
array
重复元素element的count次数
reverse(x)
array
返回一个具有相反数组顺序的数组x。
sequence(start, stop, n)
array(bigint )
从start 根据步长 n 到 stop 生成一个整数序列,n 为可选项,不填为1,。如果start小于等于stop 每次自增1,否则自增 -1
shuffle(x)
array
打乱数组元素
slice(x, start, length)
array
返回将 x 数组从start位置开始,切片成长度为length的数组
transform(array(T), function(T, U))
array(U)
返回 array数组中的每个元素T经过function后生成U组成的数组
例如:transform(array [5, 6], x -> x + 1); -- [6, 7]

JSON函数

函数名称
返回值
函数功能描述
is_json_scalar(json)
boolean
判断 json是否为 json数字或 json字符串或 true 或 false 或 null
例如: is_json_scalar('[1, 2, 3]') -->false
json_array_contains(json, value)
boolean
判断 value 是否存在于 json(一个包含 json数组的字符串)中。
例如:json_array_contains('[1, 2, 3]', 2) -->true
json_array_length(json)
bigint
返回 json(一个包含 json数组的字符串)的数组长度。
例如:json_array_length('[1, 2, 3]') --> 3
json_extract(json, json_path)
json
在 json(一个包含 json的字符串)上计算类似 JSONPath 的表达式 json_path,并将结果作为 json返回。
例如:json_extract('{"log":{"file":{"path":"/etc/nginx/logs/access.log"},"offset":19991212}}', '$.log.file.path')--> "/etc/nginx/logs/access.log"
json_extract_scalar(json, json_path)
varchar
与 json_extract() 类似,但将结果值作为字符串返回,而不是json串。json_path 所引用的值必须是布尔值、数字或字符串。
例如:json_extract_scalar('{"log":{"file":{"path":"/etc/nginx/logs/access.log"},"offset":19991212}}', '$.log.file.path') -->/etc/nginx/logs/access.log
json_format(json)
varchar
返回从输入的 json值序列化的 json文本。这是 json_parse() 的逆函数。
例如:json_format(JSON '[1, 2, 3]') -->[1,2,3]
json_parse(string)
json
返回从输入的 json文本反序列化的 json值。这是 json_format() 的逆函数。
例如:json_parse('[1, 2, 3]') -->[1,2,3]
json_size(json, json_path)
bigint
与 json_extract() 类似,但返回值的大小。对于对象或数组,大小是成员的数量,标量值的大小是零。
例如:json_size('{"x": [1, 2, 3]}', '$.x') -->3

聚合函数

函数名称
返回值
函数功能描述
arbitrary(x)
与输入一致
如果存在,则返回x的任意非空值
array_agg(x)
array[x]
返回由输入x元素创建的数组
avg(x)
double
返回所有输入值的平均值(算术平均值)
bool_and(boolean) | every(boolean)
boolean
输入的每个值都为true,则返回true,否则返回false
bool_or(boolean)
boolean
输入的值只要有一个为true,则返回true,否则返回false
checksum(x)
varbinary
返回输入值的校验和
count(*)
bigint
返回行数
count(x)
bigint
返回非空输入值的数量
count_if(x)
bigint
返回输入值中为true值的数量,等价于count(CASE WHEN x THEN 1 END)
geometric_mean(x)
double
返回几何平均值
max_by(x, y)
与输入 x 一致
返回 x 中与 y 的最大值相关连的值
max_by(x, y, n)
array[x]
按照y降序排列,返回 x 中  n 个 与 y 中 n 个最小值相关联的值
min_by(x, y)
与输入 x 一致
返回 x 中与 y 的最小值相关连的值
min_by(x, y, n)
array[x]
按照 y 升序排列,返回 x 中  n 个 与 y 中 n 个最小值相关联的值
max(x)
与输入一致
返回输入中的最大值
max(x, n)
与输入 x 一致
返回输入中最大的 n 个值
min(x)
与输入一致
返回输入中的最小值
min(x, n)
与输入 x 一致
返回输入中最小的 n 个值
set_agg(x)
与输入一致
返回一个不重复元素的数组
set_union(array(T)) 
array(T)
返回输入的每个数组中包含的所有不同值的数组
例如:select set_union(elements) FROM (VALUES ARRAY[1, 2, 3], ARRAY[2, 3, 4]) AS t(elements) -->ARRAY[1, 2, 3, 4]
sum(x)
与输入一致
返回和
bitwise_and_agg(x)
bigint
返回所有位的与
bitwise_or_agg(x)
bigint
返回所有位的或
histogram(x)

返回一个包含每个输入值出现次数的map
map_agg(key, value)
map(K, V)
返回key-value组成的map
map_union(x(K, V)) 
map(K, V)
返回所有输入映射的并集,如果一个key对应多个value,则结果集中key对应的value值为多个value中的任意一个value值
map_union_sum(x(K, V)) 
map(K, V)
返回相同key求和后的并集map,如果key对应的value为空,则计为0 
multimap_agg(key, value)

返回 key-value组成的map,key可以对应多个值

窗口函数

函数名称
返回值
函数功能描述
row_number()
bigint
为每一行分配一个唯一的连续编号
rank()
bigint
计算某个值在一组值中的排名。如果出现排名相等,则在排名序列中留出空位。
percent_rank()
double
计算某个值在一组值中的百分比排名。返回值以 0 到 1 之间的小数表示。
dense_rank()
bigint
计算某个值在一组值中的排名,如果出现排名相等,与函数rank不同,dense_rank不会在排名序列中产生空位。
cume_dist()
bigint
计算某个值在分区中相对于所有值的位置。
ntile(n)
bigint
将窗口分区的行划分为 n 个桶,返回行所在的桶数,范围从 1 到 n
first_value(x)
与输入一致
返回分区中某列第一条数据的值
last_value(x)
与输入一致
返回分区中某列最后一条数据的值
nth_value(x, n)
与输入一致
返回距窗口头第 n 行的值。n 从 1 开始。
如果ignoreNulls=true,查找第 n 行时将跳过 null。否则,每一行都计入 n。
如果不存在这样的第 n 行(例如,当 n 为10时,窗口大小小于10),则返回null。第一个参数为列名,第二个参数为之前第 n 行。
lead(x[, n[, default_value]])
与输入一致
返回窗口中当前行向下第 n 行的值。n 默认值为 1,default 默认值为 null。
如果第 n 行的 值为 null,则返回 null。
如果不存在这样的偏移行(例如,当偏移量为1时,窗口的最后一行没有任何向下行),则返回 default 。第一个参数为列名,第二个参数为之前第 n 行,第三个参数为默认值。
lag(x[, n[, default_value]])
与输入一致
返回窗口中当前行向上第 n 行的值。n 默认值为 1,default 默认值为 null。
如果第 n 行的 值为 null,则返回 null。
如果不存在这样的偏移行(例如,当偏移量为1时,窗口的第一行没有任何向上行),则返回 default。第一个参数为列名,第二个参数为之前第 n 行,第三个参数为默认值。

网址函数

函数名称
返回值
函数功能描述
url_extract_host(url)
varchar
返回 ur 的主机
url_extract_parameter(url, name)
varchar
返回 url 中 name 的第一个值,按照RFC 1866#section-8.2.1查找
url_extract_path(url)
varchar
返回 url 的路径
url_extract_port(url)
bigint
返回 url 的端口
url_extract_protocol(url)
varchar
返回 url 的协议
url_extract_query(url)
varchar
返回 url 的查询字符串
url_encode(value)
varchar
对 value 进行 encode 编码
url_decode(value)
varchar
对 encode 编码 的url 解码

其他函数

函数名称
返回值
函数功能描述
uuid ( )
uuid
返回一个随机生成的UUID
cast(value AS type) 
type
将 value 强制转为 type 类型
try_cast(value AS type) 
type
将 value 转成 type 类型,如果失败返回 null
typeof(expr) 
varchar
返回 expr 的类型名称
例如: typeof(cos(2) + 1.5) -->double
regexp_extract(string, pattern) 
varchar
返回 string 中正则表达式 pattern 匹配的第一个子字符串
例如:regexp_extract('1a 2b 14m', '\\d+') ->1
regexp_replace(string, pattern) 
varchar
从 string 中移除正则表达式 pattern 匹配的子字符串
例如:regexp_replace('1a 2b 14m', '\\d+[ab] ') --> '14m'
regexp_split(string, pattern)

使用正则表达式 pattern 拆分字符串并返回一个数组,保留后面的空字符串
例如:regexp_split('1a 2b 14m', '\\s*[a-z]+\\s*'); -- [1, 2, 14, ]
regexp_like(string, pattern) 
boolean
判断 string 中是否有 pattern 匹配的字符串



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈