sybn sybn-util 项目说明文档 - 基于java的跨数据库联合查询

函数列表 (show functions)

2024-12-13
sybn
sql

说明

当前版本可用的函数列表,

举例

name type desc example
AesDecrypt udf aes对称解密, AES_DECRYPT(str, key)  
aes_decrypt udf aes对称解密, AES_DECRYPT(str, key)  
aesDecrypt udf aes对称解密, AES_DECRYPT(str, key)  
AesEncrypt udf aes对称加密 TODO, AES_ENCRYPT(str, key)  
aes_encrypt udf aes对称加密 TODO, AES_ENCRYPT(str, key)  
aesEncrypt udf aes对称加密 TODO, AES_ENCRYPT(str, key)  
abs udf 指定值强转浮点数并取绝对值 abs(-3.14) 返回 3.14
acos udf acos 反余弦 acos(0.5) 返回 1.047197…(弧度)
add udf 多个数相加 add(1, 2, 3, 4) 返回 10
addDays udf 增加指定天 addDays(date, 1)
add_days udf 增加指定天 addDays(date, 1)
addHours udf 增加指定小时 addHours(date, 1)
add_hours udf 增加指定小时 addHours(date, 1)
addMinutes udf 增加指定分钟 addMinutes(date, 1)
add_minutes udf 增加指定分钟 addMinutes(date, 1)
addMonths udf 增加指定月 addMonths(date, 1)
add_months udf 增加指定月 addMonths(date, 1)
addSeconds udf 增加指定秒钟 addSeconds(date, 1)
add_seconds udf 增加指定秒钟 addSeconds(date, 1)
addWeeks udf 增加指定周 addWeeks(date, 1)
add_weeks udf 增加指定周 addWeeks(date, 1)
addYears udf 增加指定年 addYears(date, 1)
add_years udf 增加指定年 addYears(date, 1)
argsSize udf 计算参数个数 argsSize(‘a’, ‘b’) 返回2
args_size udf 计算参数个数 argsSize(‘a’, ‘b’) 返回2
array udf 构造数组 array(1, ‘a’, 3.14) 返回 [1, a, 3.14]
arrayAppend udf 向数组结尾追加值 arrayAppend([1,2,3], 4) 返回 [1, 2, 3, 4]
array_append udf 向数组结尾追加值 arrayAppend([1,2,3], 4) 返回 [1, 2, 3, 4]
arraySize udf 获取数组/集合的大小,null 返回 0, 其他返回 1 arraySize([1,2,3]) 返回 3
array_size udf 获取数组/集合的大小,null 返回 0, 其他返回 1 arraySize([1,2,3]) 返回 3
arrayLength udf 获取数组/集合的大小,null 返回 0, 其他返回 1 arraySize([1,2,3]) 返回 3
array_length udf 获取数组/集合的大小,null 返回 0, 其他返回 1 arraySize([1,2,3]) 返回 3
array_to_string udf 使用指定字符将数组连接为字符串 array_to_string(array_expression, delimiter) (pgsql)
arrayToString udf 使用指定字符将数组连接为字符串 array_to_string(array_expression, delimiter) (pgsql)
asin udf asin 反正弦 asin(0.5) 返回 0.523598…(弧度)
atan udf atan 反正切 atan(1) 返回 0.785398…(弧度)
base64 udf 返回base64 (根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行) base64(‘sybn’)
to_base64 udf 返回base64 (根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行) base64(‘sybn’)
toBase64 udf 返回base64 (根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行) base64(‘sybn’)
batchReplace udf 将逗号分隔的 ID 列表转换为中文名称 batchReplace(‘1,2,3’, ‘x’, x+1)
batch_replace udf 将逗号分隔的 ID 列表转换为中文名称 batchReplace(‘1,2,3’, ‘x’, x+1)
calc udf 四则运算 calc(‘1 + 2 * 3’) 返回 7
cast udf 强转参数为指定类型, cast(‘1’ as INT)
cast(‘1’, INT)
tryCast udf 强转参数为指定类型, cast(‘1’ as INT)
cast(‘1’, INT)
try_cast udf 强转参数为指定类型, cast(‘1’ as INT)
cast(‘1’, INT)
coalesce udf 获取第一个非 null 值 coalesce(null, ‘hello’, ‘world’) 返回 hello
compare udf 比较 2 个值的大小 (两个值的类型可以不同) compare(5, 3) 返回 1
compare(3, 5) 返回 -1
compare(5, 5) 返回 0
concat udf 字符串连接 (只要有一个值是 null 则返回 null)  
concatWs udf 字符串连接,只要有一个字符串不是NULL,就不会返回NULL, 第一个参数是分隔符  
concat_ws udf 字符串连接,只要有一个字符串不是NULL,就不会返回NULL, 第一个参数是分隔符  
conv udf 进制转换 conv(‘FF’, 16, 10)
convert udf 格式转换, convert(‘1’ as INT)
convert(‘1’, INT)
cos udf cos 余弦 cos(0) 返回 1.0
cot udf cot 余切 cot(0.785398) 返回 1.0
curdate udf 今天零点 curdate() 返回 2024-01-15 00:00:00
curl udf 发起curl请求, 并获取其返回值  
curlHeadContentLength udf 发起curl请求, 并获取其返回值大小. (只从请求头获取, 如果请求头没有大小则尝试下载这个文件, 如果下载到 256 KB 依然没有到文件结尾, 则放弃下载)  
curl_head_content_length udf 发起curl请求, 并获取其返回值大小. (只从请求头获取, 如果请求头没有大小则尝试下载这个文件, 如果下载到 256 KB 依然没有到文件结尾, 则放弃下载)  
dateAdd udf 增加指定时间  
date_add udf 增加指定时间  
addDate udf 增加指定时间  
add_date udf 增加指定时间  
dateFormat udf 时间格式化(兼容mysql/java风格的时间模板)  
date_format udf 时间格式化(兼容mysql/java风格的时间模板)  
fromUnixtime udf 时间格式化(兼容mysql/java风格的时间模板)  
from_unixtime udf 时间格式化(兼容mysql/java风格的时间模板)  
dateToString udf 时间格式化(兼容mysql/java风格的时间模板)  
date_to_string udf 时间格式化(兼容mysql/java风格的时间模板)  
dateToStr udf 时间格式化(兼容mysql/java风格的时间模板)  
date_to_str udf 时间格式化(兼容mysql/java风格的时间模板)  
formatDate udf 时间格式化(兼容mysql/java风格的时间模板)  
format_date udf 时间格式化(兼容mysql/java风格的时间模板)  
formatDateTime udf 时间格式化(兼容mysql/java风格的时间模板)  
format_date_time udf 时间格式化(兼容mysql/java风格的时间模板)  
dateSub udf 减去指定时间  
date_sub udf 减去指定时间  
subDate udf 减去指定时间  
sub_date udf 减去指定时间  
day udf 获得该时日是当月第几天,1-31, null 返回 -1 day(‘2020-02-12’) 返回 12
dayOfMonth udf 获得该时日是当月第几天,1-31, null 返回 -1 day(‘2020-02-12’) 返回 12
day_of_month udf 获得该时日是当月第几天,1-31, null 返回 -1 day(‘2020-02-12’) 返回 12
toDayOfMonth udf 获得该时日是当月第几天,1-31, null 返回 -1 day(‘2020-02-12’) 返回 12
to_day_of_month udf 获得该时日是当月第几天,1-31, null 返回 -1 day(‘2020-02-12’) 返回 12
dayOfWeek udf 返回参数是星期几 参数不是日期=返回 -1 1=周日;2=周一;7=周六 ODBC 标准 dayOfWeek(‘2020-02-12’) 返回 4 (星期三)
day_of_week udf 返回参数是星期几 参数不是日期=返回 -1 1=周日;2=周一;7=周六 ODBC 标准 dayOfWeek(‘2020-02-12’) 返回 4 (星期三)
toDayOfWeek udf 返回参数是星期几 参数不是日期=返回 -1 1=周日;2=周一;7=周六 ODBC 标准 dayOfWeek(‘2020-02-12’) 返回 4 (星期三)
to_day_of_week udf 返回参数是星期几 参数不是日期=返回 -1 1=周日;2=周一;7=周六 ODBC 标准 dayOfWeek(‘2020-02-12’) 返回 4 (星期三)
dayOfYear udf 返回 date 是当年第几天,范围:1-366 dayOfYear(‘2020-02-12’) 返回 43
day_of_year udf 返回 date 是当年第几天,范围:1-366 dayOfYear(‘2020-02-12’) 返回 43
toDayOfYear udf 返回 date 是当年第几天,范围:1-366 dayOfYear(‘2020-02-12’) 返回 43
to_day_of_year udf 返回 date 是当年第几天,范围:1-366 dayOfYear(‘2020-02-12’) 返回 43
divide udf 多个数相除 (除零返回零) divide(100, 5, 2) 返回 10.000000000000000
divisionPercent udf 两个数相除后显示为百分比(默认格式0.00%)  
division_percent udf 两个数相除后显示为百分比(默认格式0.00%)  
dubboInvoke udf 测试指定 dubbo 服务: dubboInvoke(zk或dubbo地址, 类名.方法名(参数) [, 返回类型])  
dubbo_invoke udf 测试指定 dubbo 服务: dubboInvoke(zk或dubbo地址, 类名.方法名(参数) [, 返回类型])  
dubboList udf 查找指定 dubbo 服务: dubboList(zk或dubbo地址, 类名regex)  
dubbo_list udf 查找指定 dubbo 服务: dubboList(zk或dubbo地址, 类名regex)  
execSql udf (实验性功能) 用于循环执行某些命令 execSql(‘SELECT * FROM table WHERE id = ‘ + id)
exec_sql udf (实验性功能) 用于循环执行某些命令 execSql(‘SELECT * FROM table WHERE id = ‘ + id)
findInSet udf 逗号分隔参数二,然后寻找参数一的位置,找不到则返回 0 findInSet(‘b’, ‘a,b,c,d’) 返回 2
find_in_set udf 逗号分隔参数二,然后寻找参数一的位置,找不到则返回 0 findInSet(‘b’, ‘a,b,c,d’) 返回 2
firstDay udf 返回参数当月第一天的时间格式 firstDay(‘2020-02-12’) 返回 2020-02-01
first_day udf 返回参数当月第一天的时间格式 firstDay(‘2020-02-12’) 返回 2020-02-01
floor udf 向0取整  
fromDays udf 根据公元元年至参数时间之间的天数返回日期 (与 to_days 函数相反) fromDays(737835) 返回 2020-02-12
from_days udf 根据公元元年至参数时间之间的天数返回日期 (与 to_days 函数相反) fromDays(737835) 返回 2020-02-12
from_base64 udf 解码base64, 返回 byte[] (忽略换行符)  
fromBase64 udf 解码base64, 返回 byte[] (忽略换行符)  
from_base64_to_str udf 解码base64, 返回 string (忽略换行符)  
fromBase64ToStr udf 解码base64, 返回 string (忽略换行符)  
greatest udf 返回最大参数 greatest(1,3,5,7,9,0) 返回 9
hex udf hex 对象转16进制  
hour udf 返回小时,范围:0~23 hour(‘2020-02-12 14:30:45’) 返回 14
toHour udf 返回小时,范围:0~23 hour(‘2020-02-12 14:30:45’) 返回 14
to_hour udf 返回小时,范围:0~23 hour(‘2020-02-12 14:30:45’) 返回 14
humpToLine udf 驼峰转下划线 humpToLine(‘userName’) 返回 user_name
hump_to_line udf 驼峰转下划线 humpToLine(‘userName’) 返回 user_name
if udf 根据参数1是否为true,返回参数2或者参数3 if(exp, trueVal, falseVal)
ifNull udf 根据参数 1 是否为 null,返回参数 1 或者参数 2 ifNull(null, ‘default’) 返回 default
ifNull(‘value’, ‘default’) 返回 value
if_null udf 根据参数 1 是否为 null,返回参数 1 或者参数 2 ifNull(null, ‘default’) 返回 default
ifNull(‘value’, ‘default’) 返回 value
nvl udf 根据参数 1 是否为 null,返回参数 1 或者参数 2 ifNull(null, ‘default’) 返回 default
ifNull(‘value’, ‘default’) 返回 value
instr udf 字符串查找 instr(‘hello world’, ‘world’) 返回 7
ipAddrLow udf 获取指定网段的ip开头, 用于IP归属地等运算 ipAddrLow(‘10.9.8.7/24’) 返回 ‘10.9.8.1’
ip_addr_low udf 获取指定网段的ip开头, 用于IP归属地等运算 ipAddrLow(‘10.9.8.7/24’) 返回 ‘10.9.8.1’
isIpInSubnet udf 判断指定地址是否属于指定网段 isIpInSubnet(‘10.9.8.7’, ‘10.9.8.7/24,10.10.10.7/24’) 返回 true
is_ip_in_subnet udf 判断指定地址是否属于指定网段 isIpInSubnet(‘10.9.8.7’, ‘10.9.8.7/24,10.10.10.7/24’) 返回 true
isMobile udf 判断是不是合法手机号 (130~190 开头的 11 位整数) isMobile(‘13800138000’) 返回 true
is_mobile udf 判断是不是合法手机号 (130~190 开头的 11 位整数) isMobile(‘13800138000’) 返回 true
isPortOpen udf 检查某个服务器端口是否可达. isPortOpen(‘www.baidu.com’, 80, ‘80端口可访问’, ‘80端口不可访问’)
isPortOpen(‘www.baidu.com’, 80) 默认返回: true, false
is_port_open udf 检查某个服务器端口是否可达. isPortOpen(‘www.baidu.com’, 80, ‘80端口可访问’, ‘80端口不可访问’)
isPortOpen(‘www.baidu.com’, 80) 默认返回: true, false
javaBeanToSql udf java bean 对象 转 sql  
java_bean_to_sql udf java bean 对象 转 sql  
java_substring udf 字符串裁剪,(从0开始算)  
javaSubstring udf 字符串裁剪,(从0开始算)  
jsonValid udf 验证json合法性, 返回1那么JSON是有效的;返回0则表示JSON无效。  
json_valid udf 验证json合法性, 返回1那么JSON是有效的;返回0则表示JSON无效。  
json_contains udf 检查JSON文档是否包含指定的值或键 json_contains(data, ‘x’, ‘$.name’)
jsonContains udf 检查JSON文档是否包含指定的值或键 json_contains(data, ‘x’, ‘$.name’)
json_extract udf 从 json 中获取指定值 JSON_EXTRACT(data, ‘$.name’)  
jsonExtract udf 从 json 中获取指定值 JSON_EXTRACT(data, ‘$.name’)  
json_keys udf 获取 json keys json_keys(‘{“a”:1,”b”:2}’) 返回 [a, b]
jsonKeys udf 获取 json keys json_keys(‘{“a”:1,”b”:2}’) 返回 [a, b]
json_length udf 获取 json length json_length(‘[1,2,3]’) 返回 3
jsonLength udf 获取 json length json_length(‘[1,2,3]’) 返回 3
json_query udf 从 json 中获取指定值 json_query(data, ‘$.name’)
jsonQuery udf 从 json 中获取指定值 json_query(data, ‘$.name’)
json_value udf 从 json 中获取指定值 json_value(data, ‘$.name’, ‘INT’)
jsonValue udf 从 json 中获取指定值 json_value(data, ‘$.name’, ‘INT’)
lastDay udf 返回参数当月最后一天的 0 点 lastDay(‘2020-02-12’) 返回 2020-02-29
last_day udf 返回参数当月最后一天的 0 点 lastDay(‘2020-02-12’) 返回 2020-02-29
least udf 返回函数括号里的最小值 least(1,3,5,7,9,0) 返回 0
left udf 从左边截取字符  
length udf 返回参数转字符串后的长度 (每个中文算多个字节), 如果入参是数组或集合类,则返回其大小 length(‘你好’) 返回 6 (UTF-8 编码)
lineToHump udf 下划线转驼峰 lineToHump(‘user_name’) 返回 userName
line_to_hump udf 下划线转驼峰 lineToHump(‘user_name’) 返回 userName
locate udf 返回 substr 在字符串 str 的第一个出现的位置 locate(‘world’, ‘hello world’) 返回 7
locate(‘l’, ‘hello’, 3) 返回 4
log udf 对数运算 (自然对数) log(10) 返回 2.302585…
lower udf 返回参数转字符串后的小写格式 lower(‘HELLO’) 返回 hello
toLowerCase udf 返回参数转字符串后的小写格式 lower(‘HELLO’) 返回 hello
to_lower_case udf 返回参数转字符串后的小写格式 lower(‘HELLO’) 返回 hello
lpad udf 从左边对字符串使用指定的字符进行填充(一中文算多个字节)  
masking udf 数据脱敏工具,将数据的全部或部分替换为星号,不保证返回值与输入值长度一致 masking(‘13800138000’) 返回 138**8000
maxDateValue udf 求所有参数中的最大时间  
max_date_value udf 求所有参数中的最大时间  
maxNumberValue udf 求所有参数中的最大数字 maxNumberValue(1, 5, 3, 9, 2) 返回 9
max_number_value udf 求所有参数中的最大数字 maxNumberValue(1, 5, 3, 9, 2) 返回 9
maxValue udf 求所有参数中的最大值 maxValue(‘a’, ‘c’, ‘b’) 返回 c
max_value udf 求所有参数中的最大值 maxValue(‘a’, ‘c’, ‘b’) 返回 c
md5 udf 返回参数32位MD5  
md5_16 udf 返回参数16位MD5  
md516 udf 返回参数16位MD5  
minDateValue udf 求所有参数中的最小时间  
min_date_value udf 求所有参数中的最小时间  
minNumberValue udf 求所有参数中的最小数字 minNumberValue(5, 3, 9, 1, 7) 返回 1
min_number_value udf 求所有参数中的最小数字 minNumberValue(5, 3, 9, 1, 7) 返回 1
minValue udf 求所有参数中的最小值 minValue(‘c’, ‘a’, ‘b’) 返回 a
min_value udf 求所有参数中的最小值 minValue(‘c’, ‘a’, ‘b’) 返回 a
minute udf 返回分钟,范围:0~23 minute(‘2020-02-12 14:30:45’) 返回 30
mod udf 取余  
month udf 获得指定时间的月份,mysql 风格,null 返回 -1, 一月返回 1 month(‘2020-02-12’) 返回 2
toMonth udf 获得指定时间的月份,mysql 风格,null 返回 -1, 一月返回 1 month(‘2020-02-12’) 返回 2
to_month udf 获得指定时间的月份,mysql 风格,null 返回 -1, 一月返回 1 month(‘2020-02-12’) 返回 2
multiply udf 多个数相乘 multiply(2, 3, 4) 返回 24
notEmptyList udf 指定值如果为空则返回默认数组 notEmptyList(x, ‘1,2,3’)
notEmptyList(x, ‘1’, ‘2’, ‘3’)
not_empty_list udf 指定值如果为空则返回默认数组 notEmptyList(x, ‘1,2,3’)
notEmptyList(x, ‘1’, ‘2’, ‘3’)
now udf 当前时间 now() 返回 2026-03-30 19:26:39
nullIf udf 如果两个指定的表达式相等,就返回 NULL 值,否则返回第一个值 nullIf(5, 5) 返回 null
nullIf(5, 3) 返回 5
null_if udf 如果两个指定的表达式相等,就返回 NULL 值,否则返回第一个值 nullIf(5, 5) 返回 null
nullIf(5, 3) 返回 5
ori_decode udf 私加解密函数  
oriDecode udf 私加解密函数  
ori_encode udf 私有解密函数  
oriEncode udf 私有解密函数  
parseSqlToTables udf 解析sql并从中获取表名(只能解析完整的sql)  
parse_sql_to_tables udf 解析sql并从中获取表名(只能解析完整的sql)  
parse_url udf 解析 url 并返回其指定部分, 支持 HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO  
parseUrl udf 解析 url 并返回其指定部分, 支持 HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO  
pi udf 圆周率 (3.14159265358979323846) pi() 返回 3.14159265358979323846
ping udf 检查某个服务器端口是否可达. 默认: 成功返回 ping 毫秒数, 失败返回 null. 本方法与操作系统的 ping, tcping 逻辑类似但不完全相同 ping(‘www.baidu.com’, ‘ping成功’, ‘ping失败’, 1000)
ping(‘www.baidu.com:8443’)
position udf 返回子字符串的位置(不区分大小写, 从1开始, 找不到返回0)  
pow udf 求幂  
power udf 幂运算 (a 的 b 次方) power(2, 3) 返回 8
province udf 整理中国省份名,返回省份简称,用于渲染 echarts province(‘广东省’) 返回 广东
provinceCity udf 整理中国省份城市名,返回简称,用于渲染 echarts 等场景 provinceCity(‘河北省石家庄市’) 返回 河北省
province_city udf 整理中国省份城市名,返回简称,用于渲染 echarts 等场景 provinceCity(‘河北省石家庄市’) 返回 河北省
quarter udf 返回当前月是第几个季度 范围:1-4 quarter(‘2020-02-12’) 返回 1
toQuarter udf 返回当前月是第几个季度 范围:1-4 quarter(‘2020-02-12’) 返回 1
to_quarter udf 返回当前月是第几个季度 范围:1-4 quarter(‘2020-02-12’) 返回 1
rand udf 获取随机数,0~1 之间 rand() 返回 0.123456789
replace udf 字符串替换(普通文本替换)  
replaceAll udf 字符串替换(正则替换)  
replace_all udf 字符串替换(正则替换)  
regexpReplace udf 字符串替换(正则替换)  
regexp_replace udf 字符串替换(正则替换)  
replaceEquals udf 字符串替换(只有全量匹配才替换)  
replace_equals udf 字符串替换(只有全量匹配才替换)  
reverse udf 返回参数转字符串后的反转格式 reverse(‘hello’) 返回 olleh
right udf 从右边截取字符  
root udf 开 N 次方运算 (第一个参数为被开方数,第二个参数为开方次数,默认为 2) root(16, 2) 返回 4.0
root(27, 3) 返回 3.0
round udf 四舍五入, 向上(正无穷)取整  
rpad udf 从右边对字符串使用指定的字符进行填充(一中文算多个字节)  
runtimeName udf 当前服务器信息 (PID@机器名:内网 IP:端口号), IP 地址和端口号可能获取不到 runtimeName() 返回 12345@server1:192.168.1.100:8080
runtime_name udf 当前服务器信息 (PID@机器名:内网 IP:端口号), IP 地址和端口号可能获取不到 runtimeName() 返回 12345@server1:192.168.1.100:8080
second udf 返回秒数,范围:0~59 second(‘2020-02-12 14:30:45’) 返回 45
serverProperty udf 获取环境变量 serverProperty(‘PATH’) 返回 PATH环境变量的值
server_property udf 获取环境变量 serverProperty(‘PATH’) 返回 PATH环境变量的值
serviceStartTime udf 当前服务器初始化时间(约等于启动时间) serviceStartTime() 返回 2026-03-30 19:26:04
service_start_time udf 当前服务器初始化时间(约等于启动时间) serviceStartTime() 返回 2026-03-30 19:26:04
sin udf sin 正弦 sin(0.523598) 返回 0.5
sleep udf 休眠若干毫秒 (模拟慢查询,最大支持休眠 1 分钟) sleep(1000) 休眠 1 秒
snowFlakeId udf 返回一个雪花 id snowFlakeId() 返回 1234567890123456789
snow_flake_id udf 返回一个雪花 id snowFlakeId() 返回 1234567890123456789
split udf 字符串拆分为数组 split(‘a,b,c’, ‘,’)
splitSqlToTables udf 利用from/join关键词从sql中搜索表名(可以解析不完整的sql)  
split_sql_to_tables udf 利用from/join关键词从sql中搜索表名(可以解析不完整的sql)  
splitSubstring udf 使用正则拆分,并获取第N个字符串, 默认返回空字符串 splitSubstring(target,delimiter,index)
split_substring udf 使用正则拆分,并获取第N个字符串, 默认返回空字符串 splitSubstring(target,delimiter,index)
sqrt udf sqrt 平方根 sqrt(4) 返回 2.0
strToDate udf 字符串转时间(允许不指定时间格式)  
str_to_date udf 字符串转时间(允许不指定时间格式)  
substring udf 字符串裁剪(注意从1开始算)  
substr udf 字符串裁剪(注意从1开始算)  
substring_index udf 获取指定字符附近的子字符串  
substringIndex udf 获取指定字符附近的子字符串  
subtract udf 多个数相减 subtract(10, 3, 2) 返回 5
subtractDays udf 减少指定天 subtractDays(date, 1)
subtract_days udf 减少指定天 subtractDays(date, 1)
subtractHours udf 减少指定小时 subtractHours(date, 1)
subtract_hours udf 减少指定小时 subtractHours(date, 1)
subtractMinutes udf 减少指定分钟 subtractMinutes(date, 1)
subtract_minutes udf 减少指定分钟 subtractMinutes(date, 1)
subtractMonths udf 减少指定月 subtractMonths(date, 1)
subtract_months udf 减少指定月 subtractMonths(date, 1)
subtractSeconds udf 减少指定秒钟 subtractSeconds(date, 1)
subtract_seconds udf 减少指定秒钟 subtractSeconds(date, 1)
subtractWeeks udf 减少指定周 subtractWeeks(date, 1)
subtract_weeks udf 减少指定周 subtractWeeks(date, 1)
subtractYears udf 减少指定年 subtractYears(date, 1)
subtract_years udf 减少指定年 subtractYears(date, 1)
sybnUuid udf 返回一个 uuid, 时间基本有序,支持集群唯一性 sybnUuid() 返回 20240115123045-000001-abc123
sybn_uuid udf 返回一个 uuid, 时间基本有序,支持集群唯一性 sybnUuid() 返回 20240115123045-000001-abc123
tan udf tan 正切 tan(0.785398) 返回 1.0
timestampDiff udf 求两个时间的差  
timestamp_diff udf 求两个时间的差  
dateDiff udf 求两个时间的差  
date_diff udf 求两个时间的差  
toDate udf 指定值强转时间(支持部分中文和大部分常见的英文日期格式) toDate(‘今天’) 返回 2026-03-30 00:00:00
to_date udf 指定值强转时间(支持部分中文和大部分常见的英文日期格式) toDate(‘今天’) 返回 2026-03-30 00:00:00
toDateTimeEndString udf 指定值强转日期 yyyy-MM-dd 23:59:59 格式 toDateTimeEndString(‘2020-02-12’) 返回 2020-02-12 23:59:59
to_date_time_end_string udf 指定值强转日期 yyyy-MM-dd 23:59:59 格式 toDateTimeEndString(‘2020-02-12’) 返回 2020-02-12 23:59:59
toDayEndString udf 指定值强转日期 yyyy-MM-dd 23:59:59 格式 toDateTimeEndString(‘2020-02-12’) 返回 2020-02-12 23:59:59
to_day_end_string udf 指定值强转日期 yyyy-MM-dd 23:59:59 格式 toDateTimeEndString(‘2020-02-12’) 返回 2020-02-12 23:59:59
toDateTimeStartString udf 指定值强转日期 yyyy-MM-dd 00:00:00 格式 toDateTimeStartString(‘2020-02-12’) 返回 2020-02-12 00:00:00
to_date_time_start_string udf 指定值强转日期 yyyy-MM-dd 00:00:00 格式 toDateTimeStartString(‘2020-02-12’) 返回 2020-02-12 00:00:00
toDayStartString udf 指定值强转日期 yyyy-MM-dd 00:00:00 格式 toDateTimeStartString(‘2020-02-12’) 返回 2020-02-12 00:00:00
to_day_start_string udf 指定值强转日期 yyyy-MM-dd 00:00:00 格式 toDateTimeStartString(‘2020-02-12’) 返回 2020-02-12 00:00:00
toDateTimeString udf 指定值强转日期 yyyy-MM-dd HH:mm:ss 格式 toDateTimeString(‘2020-02-12’) 返回 2020-02-12 00:00:00
to_date_time_string udf 指定值强转日期 yyyy-MM-dd HH:mm:ss 格式 toDateTimeString(‘2020-02-12’) 返回 2020-02-12 00:00:00
toDayTimeString udf 指定值强转日期 yyyy-MM-dd HH:mm:ss 格式 toDateTimeString(‘2020-02-12’) 返回 2020-02-12 00:00:00
to_day_time_string udf 指定值强转日期 yyyy-MM-dd HH:mm:ss 格式 toDateTimeString(‘2020-02-12’) 返回 2020-02-12 00:00:00
toDayString udf 指定值强转日期 yyyy-mm-dd 格式 toDayString(‘2020-02-12’) 返回 2020-02-12
to_day_string udf 指定值强转日期 yyyy-mm-dd 格式 toDayString(‘2020-02-12’) 返回 2020-02-12
toDays udf 返回公元元年至 day 之间的天数 (与 from_days 函数相反) toDays(‘2020-02-12’) 返回 737835
to_days udf 返回公元元年至 day 之间的天数 (与 from_days 函数相反) toDays(‘2020-02-12’) 返回 737835
toDouble udf 指定值强转浮点数 toDouble(‘3.14’)
to_double udf 指定值强转浮点数 toDouble(‘3.14’)
toFloat udf 指定值强转 (低精度) 浮点数 toFloat(‘3.14’)
to_float udf 指定值强转 (低精度) 浮点数 toFloat(‘3.14’)
toInt udf 指定值强转整数, 舍弃小数部分 (正负 20 亿) toInt(‘123.9’) 返回 123
to_int udf 指定值强转整数, 舍弃小数部分 (正负 20 亿) toInt(‘123.9’) 返回 123
toJavaBean udf 对象转 java bean  
to_java_bean udf 对象转 java bean  
toList udf 指定值强转数组 toList(‘1,2,3’)
toList(‘1’, ‘2’, ‘3’)
to_list udf 指定值强转数组 toList(‘1,2,3’)
toList(‘1’, ‘2’, ‘3’)
toLong udf 指定值强转整数 (正负 900 亿亿) toLong(‘123456789’) 返回 123456789
to_long udf 指定值强转整数 (正负 900 亿亿) toLong(‘123456789’) 返回 123456789
toPercent udf 将数字强转百分比 toPercent(1/3) => 33.33%
to_percent udf 将数字强转百分比 toPercent(1/3) => 33.33%
toSelectAll udf create table 转 select 各个字段  
to_select_all udf create table 转 select 各个字段  
toSelectAllDesc udf create table 转 select 各个字段及注释  
to_select_all_desc udf create table 转 select 各个字段及注释  
toSelectDescAll udf create table 转 select 各个字段as中文  
to_select_desc_all udf create table 转 select 各个字段as中文  
toSelectHumpAll udf create table 转 select 各个字段 as 驼峰  
to_select_hump_all udf create table 转 select 各个字段 as 驼峰  
toSet udf 指定值强转数组 (并去重) toSet(‘1,2,2,3’)
toSet(‘1’, ‘2’, ‘3’)
to_set udf 指定值强转数组 (并去重) toSet(‘1,2,2,3’)
toSet(‘1’, ‘2’, ‘3’)
toString udf 指定值强转文本 toString(123) 返回 “123”
to_string udf 指定值强转文本 toString(123) 返回 “123”
toYYYYMM udf 指定值强转时间 toYYYYMM(‘2020-02-12’) 返回 202002
to_y_y_y_y_m_m udf 指定值强转时间 toYYYYMM(‘2020-02-12’) 返回 202002
toYYYYMMDD udf 指定值强转时间 toYYYYMMDD(‘2020-02-12’) 返回 20200212
to_y_y_y_y_m_m_d_d udf 指定值强转时间 toYYYYMMDD(‘2020-02-12’) 返回 20200212
toYYYYMMDDHHMMSS udf 指定值强转时间 toYYYYMMDDHHMMSS(‘2020-02-12’) 返回 20200212000000
to_y_y_y_y_m_m_d_d_h_h_m_m_s_s udf 指定值强转时间 toYYYYMMDDHHMMSS(‘2020-02-12’) 返回 20200212000000
to_pinyin udf to_pinyin 中文转拼音 (不含声调) to_pinyin(‘中国’) 返回 zhong guo
toPinyin udf to_pinyin 中文转拼音 (不含声调) to_pinyin(‘中国’) 返回 zhong guo
to_pinyin_first_initial udf to_pinyin_first_initial 中文转拼音首字符 (返回第一个字的首字母) to_pinyin_first_initial(‘张’) 返回 Z
toPinyinFirstInitial udf to_pinyin_first_initial 中文转拼音首字符 (返回第一个字的首字母) to_pinyin_first_initial(‘张’) 返回 Z
to_pinyin_initials udf to_pinyin_initials 中文转拼音首字符 (每个字返回首字母) to_pinyin_initials(‘张三李四’) 返回 ZSLS
toPinyinInitials udf to_pinyin_initials 中文转拼音首字符 (每个字返回首字母) to_pinyin_initials(‘张三李四’) 返回 ZSLS
trim udf 删除首尾空格或指定字符 (允许指定删哪边的空格) trim(‘ hello ‘) 返回 hello
trim(LEADING ‘x’ FROM ‘xxxbar’) 返回 bar
truncate udf 截取前N位小数, 向 0 取整  
unhex udf 16进制字符串转对象  
updateCreateTable udf 建表语句升级 updateCreateTable(‘create table …’, ‘create table …’)
update_create_table udf 建表语句升级 updateCreateTable(‘create table …’, ‘create table …’)
upper udf 返回参数转字符串后的大写格式 upper(‘hello’) 返回 HELLO
toUpperCase udf 返回参数转字符串后的大写格式 upper(‘hello’) 返回 HELLO
to_upper_case udf 返回参数转字符串后的大写格式 upper(‘hello’) 返回 HELLO
uuid udf 返回一个 uuid uuid() 返回 550e8400-e29b-41d4-a716-446655440000
version udf 当前版本号 version() 返回 0.3.35_20260327
weekDay udf 回 date 的星期索引 (0=星期一,1=星期二,……6= 星期天) weekDay(‘2020-02-12’) 返回 3 (星期三)
week_day udf 回 date 的星期索引 (0=星期一,1=星期二,……6= 星期天) weekDay(‘2020-02-12’) 返回 3 (星期三)
year udf 返回年份 year(‘2020-02-12’) 返回 2020
toYear udf 返回年份 year(‘2020-02-12’) 返回 2020
to_year udf 返回年份 year(‘2020-02-12’) 返回 2020
argMax window 计算最大 val 值对应的 arg 值。argMax(arg, val)  
arg_max window 计算最大 val 值对应的 arg 值。argMax(arg, val)  
argMin window 计算最小 val 值对应的 arg 值。argMin(arg, val)  
arg_min window 计算最小 val 值对应的 arg 值。argMin(arg, val)  
avg window    
avgAny window 求平均数,null与0当作0参与计算  
avg_any window 求平均数,null与0当作0参与计算  
avga window 求平均数,null与0当作0参与计算  
avgPositive window 求平均数,null与非正数会被忽略  
avg_positive window 求平均数,null与非正数会被忽略  
concatList window 类似与sql的MySQL中concat函数, 将做个值拼接为数组值  
concat_list window 类似与sql的MySQL中concat函数, 将做个值拼接为数组值  
count window    
countAll window 求 count 值 (null 也算数)  
count_all window 求 count 值 (null 也算数)  
countDistinct window    
count_distinct window    
dateList window 按日期求折线图数组  
date_list window 按日期求折线图数组  
first window 返回第一个非null值  
anyValue window 返回第一个非null值  
any_value window 返回第一个非null值  
firstAny window 返回第一个值, 可以返回 null 值  
first_any window 返回第一个值, 可以返回 null 值  
firsta window 返回第一个值, 可以返回 null 值  
firstNz window 返回第一个非零非null值  
first_nz window 返回第一个非零非null值  
firstPositive window 返回第一个正数值  
first_positive window 返回第一个正数值  
groupConcat window    
group_concat window    
jobScopeTime window 计算任务时长: jobScopeTime(时间轴, 时间间隔, 值[,唯一标识])  
job_scope_time window 计算任务时长: jobScopeTime(时间轴, 时间间隔, 值[,唯一标识])  
last window 获取最后一个值  
lastAny window 返回最后一个值, 可以返回null  
last_any window 返回最后一个值, 可以返回null  
lasta window 返回最后一个值, 可以返回null  
lastNz window 返回最后一个非零非null值  
last_nz window 返回最后一个非零非null值  
lastPositive window 返回最后一个正数值  
last_positive window 返回最后一个正数值  
list window 将所有数据合并为一个数组  
group_list window 将所有数据合并为一个数组  
groupList window 将所有数据合并为一个数组  
array_agg window 将所有数据合并为一个数组  
arrayAgg window 将所有数据合并为一个数组  
listAll window 将所有子数组合并为一个大数组  
list_all window 将所有子数组合并为一个大数组  
listAllDistinct window 将所有子数组合并为一个去重大数组  
list_all_distinct window 将所有子数组合并为一个去重大数组  
listDistinct window 将所有子数组去重合并为一个大数组  
list_distinct window 将所有子数组去重合并为一个大数组  
longList window 按指定数字x轴求折线图数组  
long_list window 按指定数字x轴求折线图数组  
map udaf 将数据组织成map格式  
mapList window 将数据整合为指定 key 的List<Map>  
map_list window 将数据整合为指定 key 的List<Map>  
mapSum window 将多行数据合并为单个map的kv对中  
map_sum window 将多行数据合并为单个map的kv对中  
max window    
maxStr window    
max_str window    
min window    
scopeList window 按指定范围x轴求折线图数组  
scope_list window 按指定范围x轴求折线图数组  
set window 将数据组合为 set  
setAll window 将数据尽可能打散后用 set 聚合到一起. 比如二次聚合group_concat的结果  
set_all window 将数据尽可能打散后用 set 聚合到一起. 比如二次聚合group_concat的结果  
subMap udaf 将数据组织成map格式  
sub_map udaf 将数据组织成map格式  
subMapList window 将多行数据转换为单个map的kv对中  
sub_map_list window 将多行数据转换为单个map的kv对中  
subValueList window 如果子项目是数组或集合,则合并  
sub_value_list window 如果子项目是数组或集合,则合并  
subValueListAll window 如果子项目是数组或集合,则合并所有值  
sub_value_list_all window 如果子项目是数组或集合,则合并所有值  
subValueSet window 如果子项目是数组或集合,则合并且去重  
sub_value_set window 如果子项目是数组或集合,则合并且去重  
sum window    
valueList window 如果项目是数组或集合,则合并  
value_list window 如果项目是数组或集合,则合并  
valueListAll window 如果项目是数组或集合,则合并所有值  
value_list_all window 如果项目是数组或集合,则合并所有值  
valueSet window 如果项目是数组或集合,则合并且去重  
value_set window 如果项目是数组或集合,则合并且去重  
lag window 访问当前行之前指定偏移量的行数据  
rowNumber window 为窗口分区中的每一行分配唯一的连续序号  
row_number window 为窗口分区中的每一行分配唯一的连续序号  
json_table udtf 展开 json 中的所有字段, 增加数据的行数和列数. json_table(json)  
jsonTable udtf 展开 json 中的所有字段, 增加数据的行数和列数. json_table(json)  
unwind command 数据列转行 unwind(字段1, [字段2 …]) 所有字段拆成数组后笛卡尔积生成新行, 未被拆分的字段会被复制, 参考自 MongoDB  
alignColumns command 对齐列 alignColumns([字段1, 字段2 …]) 默认对齐所有列, 指定参数时仅返回指定列  
appendColumns command 添加新的列到结尾位置 appendColumns(字段值 as 字段1, [字段值 as 字段2 …]) 默认会覆盖原有值, 可以使用if等函数保留原始值  
builderInsert command 根据维度对齐数据行 builderInsert([字段列表]) 默认全部字段  
cacheResult command 在不同查询之间缓存查询结果; cacheResult(子sql) [on cacheable=true and clearCache=false and cacheType=memory]  
clearQueue command 清理查询堆栈 clearQueue([清理数量])  
dynamicSourceQuery command 向指定数据库发起查询 dynamicSourceQuery(子查询) on source_type=’(jdbc|sysql)’ and (dbsource=’xxx’ | url=’xxx’)  
execBatch command 批量查询 select …; execBatch(子sql) [on concurrent=线程数] [and safe_params=安全参数] [and ignore_error=忽略异常] [and sub_timeout_sec=子任务超时时长] [and on_error_query=失败代偿sql] [and on_empty_query=空值代偿sql] 将前置查询的结果作为批量查询的入参  
explain command 获取 sql 查询计划 explain select … 对非 jdbc 数据源无效  
fill command 根据维度对齐数据行 fill(id(id,int),field,t(t,yyyy-MM-dd)) 比如将 group by 返回值中缺失的日期补0  
if exists command 根据断言sql是否为空, 决定指定哪个sql if exists (when_sql) then (then_sql) [else (else_sql)]  
limit command 对前一个结果执行 limit 操作, 等效于 select * from (前一个sql) limit 当前条件  
loadFileSourceQuery command 读取指定文件 loadFileSourceQuery(‘/usr/local/log/xxx.log’) on delimiter=’,’  
order command 对前一个结果执行 order by [limit] 操作, 等效于 select * from (前一个sql) order by 当前条件  
pivot command 行列转换 PIVOT(aggList FOR groupField IN(groupValues)) 类似于 excel 的转置, 参考自 sql server 的 PIVOT  
prependColumns command 添加新的列到开头位置 prependColumns(字段值 as 字段1, [字段值 as 字段2 …]) 默认会覆盖原有值, 可以使用if等函数保留原始值  
removeColumns command 删除部分列 removeColumns(字段1, [字段2 …])  
return command 返回结果不再继续执行, 可以返回指定结果  
splitColumns command 拆分列 splitColumns(field, split, prefix, postfix)  
unnest command 数据列转行 UNNEST([map|array]) as t(字段1[, 字段2…]) 行展开或列展开, 参考自 flink  
where command 对前一个结果执行 where [order by] [limit] 操作, 等效于 select * from (前一个sql) where 当前条件  

Similar Posts

Comments

暂不开放评论! 可微信联系