tencent cloud

文档反馈

Presto 内置函数

最后更新时间: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 匹配的字符串
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持