flink内置函数

flink内置函数

flink支持的字符串函数:

string1 || string2 : 两个字符串串联

CHAR_LENGTH(string) / CHARACTER_LENGTH(string) :返回字符串字符长度

UPPER(string) : 返回大写格式的字符串

LOWER(string) : 返回小写格式的字符串

POSITION(string1 IN string2) : 返回string1在 string2第一次出现的位置,开始位置是1 ,如果没有返回0

TRIM([ BOTH | LEADING | TRAILING ] string1 FROM string2) : 从string2中移除string1,默认情况是两边的空格都被删除

LTRIM(string) / RTRIM(string) :移除字符串左边/右边空格

REPEAT(string, integer) : 返回一个字符串,将其重复integer代表的整数次数

REGEXP_REPLACE(string1, string2, string3) : 在string1中匹配正则表达式string2,然后将其匹配的结果替换为string3

OVERLAY(string1 PLACING string2 FROM integer1 [ FOR integer2 ]) : 从字符串string1的integer1位置处开始(从0开始数),使用string2替换掉,默认integer2时string2的长度

SUBSTRING(string FROM integer1 [ FOR integer2 ]) : 从字符串integer1开始 截取长度为integer2的子字符串

REPLACE(string1, string2, string3) : 使用字符串string3来代替字符串string1中的字string2(非重叠)

REGEXP_EXTRACT(string1, string2[, integer]) : 从字符串string1中提取字符串,通过使用一个正则表达式string2和正则表达式匹配组索引的整数

INITCAP(string) : 将字符串string中每个单词的首字母大写,每个单词的非首字母小写,空格隔开每个单词

CONCAT(string1, string2,…) : 拼接多个字符串

CONCAT_WS(string1, string2, string3,…) : 使用特殊符号sting1来串联string2 string3…字符串

LPAD(string1, integer, string2) : 从string1中返回长度为integer的字符串,如果字符串string1的长度小于integer,那么在字符串左侧使用string2填充,来达到integer长度

RPAD(string1, integer, string2) : 从string1中返回长度为integer的字符串,如果字符串string1的长度小于integer,那么在字符串右侧使用string2填充,来达到integer长度

FROM_BASE64(string)/TO_BASE64(string) 返回base64解码/编码后的字符串

blink增加的字符串函数

ASCII(string) : 如果string是null那么返回null,否则返回string第一个字符的整数值

CHR(integer) : 返回整数值的ASCII字符

DECODE(binary, string) : 使用string代表的编码(US-ASCII’, ‘ISO-8859-1’, ‘UTF-8’, ‘UTF-16BE’, ‘UTF-16LE’, 'UTF-16)将binary编码为字符串

ENCODE(string1, string2) : 使用string2代表的编码方式将字符串string2变为BINARY

INSTR(string1, string2) : 返回string2中第一次出现字符串string1的位置

LEFT(string, integer) / RIGHT(string, integer) : 返回字符串string中最左边/最后边的integer个字符

LOCATE(string1, string2[, integer]) : 返回字符串string2中integer位置后第一次出现string1的位置,不存在返回0

REGEXP(string1, string2) : 字符串string1的任何子串(包含空)能够匹配表达式string2返回TRUE,否则FALSE

REVERSE(string) : 字符串反转

SPLIT_INDEX(string1, string2, integer1) : 使用分隔符string2划分string1,返回这integer1处的值(基于0开始的)

STR_TO_MAP(string1[, string2, string3]]) : 划分一个字符串string1返回map, 键值队分隔符strign2默认是逗号,键值对内划分分隔符string3默认是等于号

SUBSTR(string[, integer1[, integer2]]) : 返回字符串string的子串,开始位置是integer1,长度是integer2

PARSE_URL(string1, string2[, string3]) : 返回URL中特殊的部分区域,string2的取值’HOST’, ‘PATH’, ‘QUERY’, ‘REF’, ‘PROTOCOL’, ‘AUTHORITY’, ‘FILE’, and ‘USERINFO’
HH:mm:ss

parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1’, ‘HOST’) = ‘facebook.com’
parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1’, ‘QUERY’, ‘k1’) = ‘v1’

flink支持的时间函数

DATE string : yyyy-MM-dd

TIME string : HH:mm:ss

TIMESTAMP string : yyyy-MM-dd HH:mm:ss[.SSS]

INTERVAL string range : range的值DAY, MINUTE, DAY TO HOUR, DAY TO SECOND

CURRENT_DATE : UTC time zone.

CURRENT_TIME :UTC time zone.

CURRENT_TIMESTAMP :UTC time zone.

LOCALTIME :local time zone

LOCALTIMESTAMP : local time zone

EXTRACT(timeintervalunit FROM temporal) :EXTRACT(DAY FROM DATE ‘2006-06-05’)=5

YEAR(date) : YEAR(DATE ‘1994-09-27’) = 1994

QUARTER(date) : QUARTER(DATE ‘1994-09-27’) = 3

MONTH(date) : MONTH(DATE ‘1994-09-27’) = 9

WEEK(date)

DAYOFYEAR(date)

DAYOFMONTH(date)

DAYOFWEEK(date)

HOUR(timestamp) : HOUR(TIMESTAMP ‘1994-09-27 13:14:15’) = 13

MINUTE(timestamp)

SECOND(timestamp)

FLOOR(timepoint TO timeintervalunit) : FLOOR(TIME ‘12:44:31’ TO MINUTE) = 12:44:00

(timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) :
(TIME ‘2:55:00’, INTERVAL ‘1’ HOUR) OVERLAPS (TIME ‘3:30:00’, INTERVAL ‘2’ HOUR) = TRUE;
(TIME ‘9:00:00’, TIME ‘10:00:00’) OVERLAPS (TIME ‘10:15:00’, INTERVAL ‘3’ HOUR) = FALSE

DATE_FORMAT(timestamp, string) :暂时存在bug ,自定义udf

TIMESTAMPADD(timeintervalunit, interval, timepoint) :SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR.
TIMESTAMPADD(WEEK, 1, DATE ‘2003-01-02’) = 2003-01-09

TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2):返回timepoint1与timepoint2直接timepointunit单位的差值
TIMESTAMPDIFF(DAY, TIMESTAMP ‘2003-01-02 10:00:00’, TIMESTAMP ‘2003-01-03 10:00:00’) = 1.

blink支持的日期函数

CONVERT_TZ(string1, string2, string3) : 转换time zone是string2的 日期string1 到time zone是string3后的日期
CONVERT(‘1970-01-01 00:00:00’, ‘UTC’, ‘America/Los_Angeles’) = ‘1969-12-31 16:00:00’.

FROM_UNIXTIME(numeric[, string])

UNIX_TIMESTAMP()

UNIX_TIMESTAMP(string1[, string2])

TO_DATE(string1[, string2]) : 将日期时间字符串string1转为string2格式日期

TO_TIMESTAMP(string1[, string2])

NOW()

比较函数

value1 = value2 : 相等返回true ,如果其中一个为NULL那么返回UNKNOWN

value1 <> value2 :不等返回true,如果其中一个为NULL那么返回UNKNOWN

value1 > value2 :如果其中一个为NULL那么返回UNKNOWN

value1 >= value2 : 如果其中一个为NULL那么返回UNKNOWN

value1 <= value2

value IS NULL

value IS NOT NULL

value1 IS DISTINCT FROM value2

value1 IS NOT DISTINCT FROM value2

value1 BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3 :默认是ASYMMETRIC,如果value1大于等于value2 并且 value1小于等于value3那么返回true ; SYMMETRIC关键字时候,value1在[value2,value3]或者[value3,value2]范围内时候返回TRUE

value1 NOT BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3

string1 LIKE string2

string1 NOT LIKE string2

string1 SIMILAR TO string2

string1 NOT SIMILAR TO string2

value1 IN (value2 [, value3]* ):4 IN (1, 2, 3) returns FALSE; 1 IN (1, 2, NULL) returns TRUE; 4 IN (1, 2, NULL) returns UNKNOWN

value1 NOT IN (value2 [, value3]* )

EXISTS (sub-query)

value IN (sub-query)

value NOT IN (sub-query)

逻辑函数

boolean1 OR boolean2 : 任意一个是true遍返回true

boolean1 AND boolean2 : boolean1 和 boolean2同时为true 返回ture

NOT boolean : boolean是true返回false,是false返回true,是unknown返回unknown

boolean IS FALSE

boolean IS NOT FALSE

boolean IS TRUE

boolean IS NOT TRUE

boolean IS UNKNOWN : NULLIF(TRUE,TRUE) IS UNKNOWN=true

boolean IS NOT UNKNOWN

集合函数

CARDINALITY(array) 返回array中元素数量

array [’ integer ‘] 返回integer索引处元素,从1开始

ELEMENT(array) : array多于一个元素抛异常,返回array中唯一元素

CARDINALITY(map)

map ‘[’ value ‘]’ : 返回map中指定key的元素

构造函数

ROW(value1, [, value2]*) :多个元素返回一个row

ARRAY ‘[’ value1 [, value2 ]* ‘]’ :多个元素返回一个数组

MAP ‘[’ value1, value2 [, value3, value4 ]* ‘]’ :多个元素返回一个map

哈希函数

MD5(string) :MD5哈希 32位

SHA1(string) :SHA-1哈希 40位

SHA224(string) :SHA-224哈希 56位

SHA256(string) :SHA-256哈希 64位

SHA384(string) :SHA-384哈希 96位

SHA512(string): SHA-512哈希 128

分组函数

GROUP_ID() : 返回 分组关键字组合 的唯一标识

GROUPING(expression1 [, expression2]* )

GROUPING_ID(expression1 [, expression2]* )

聚合函数

COUNT() COUNT(1) :返回输入的行数
COUNT([ ALL ] expression | DISTINCT expression1 [, expression2]
) :返回输入行数 可以去重

AVG([ ALL | DISTINCT ] expression) :求均值

SUM([ ALL | DISTINCT ] expression) : 求和

MAX([ ALL | DISTINCT ] expression) : 求最大值

MIN([ ALL | DISTINCT ] expression) : 求最小值

STDDEV_POP([ ALL | DISTINCT ] expression) :总体求标准差

STDDEV_SAMP([ ALL | DISTINCT ] expression) :采用标准差

VAR_POP([ ALL | DISTINCT ] expression) : 总体方差

VAR_SAMP([ ALL | DISTINCT ] expression) : 采样方差

COLLECT([ ALL | DISTINCT ] expression)

blink支持的聚合函数

VARIANCE([ ALL | DISTINCT ] expression) : 采样方差

RANK() :返回一个值在一组值中的排名 RANK() OVER (PARTITION BY a ORDER BY proctime DESC) as rk

DENSE_RANK()

ROW_NUMBER()

LEAD(expression [, offset] [, default] )

LAG(expression [, offset] [, default])

FIRST_VALUE(expression) : 返回 有序集合中的第一个值

LAST_VALUE(expression) :返回有序集合中的最后一个值

LISTAGG(expression [, separator]) : 拼接一组值,默认增加分隔符逗号

select
listagg(ename) within group(order by deptno, ename) as default_listagg_sep,
listagg(ename, '; ') within group(order by deptno, ename desc) as custom_listagg_sep
from emp group by gender;

算术函数

  • numeric : 返回numeric
  • numeric: 返回numeric的负数

numeric1 + numeric2 :返回两个值的和

numeric1 - numeric2 :返回两个值的差

numeric1 * numeric2 :返回两个值的积

numeric1 / numeric2 :返回两个值的除

POWER(numeric1, numeric2) :返回 numeric1的numeric2次幂

ABS(numeric) :绝对值

MOD(numeric1, numeric2) :取模

SQRT(numeric) :平方根

LN(numeric) :以e为底,返回对数

LOG10(numeric):以10为底返回对数

LOG2(numeric) :以2为底,返回对数

LOG(numeric1, numeric2) :返回numeric2的对数 基于底数numeric1

EXP(numeric) :返回e的numeric幂

CEIL(numeric) /CEILING(numeric) :向上舍入数字 ,返回大于等于当前数值numeric的最小整数

FLOOR(numeric) :向下舍入数字 ,返回小于等于当前数值numeric的最大整数

SIN(numeric) :返回正弦值

SINH(numeric) :双曲正弦值

COS(numeric) :余弦值

TAN(numeric) :正切值

COT(numeric) :余切值

ASIN(numeric) :反正弦值

ACOS(numeric) :反余弦值

ATAN(numeric) : 反正切值

ATAN2(numeric1, numeric2) :返回坐标(numeric1, numeric2)的反正切

COSH(numeric) :返回双曲余弦值

DEGREES(numeric) :返回弧度值numeric的度数

RADIANS(numeric) :返回一个度值numeric的弧度

SIGN(numeric) :返回数字的符号

RAND() :返回一个[0.0,1.0)之间的伪随机数 double类型

RAND(integer) :返回一个带有seed初始值integer的伪随机数double类型的数值,范围[0.0,1.0)

RAND_INTEGER(integer) : 返回一个伪随机整数 [0,integer)

UUID()

BIN(integer):返回一个整数的二进制

HEX(numeric) :返回16进制数

TRUNCATE(numeric1, integer2) :返回截取integer2小数位的结果
truncate(42.345, 2) = 42.34
truncate(42.345) = 42.0

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值