Flink1.17 版本常见的 SQL 函数总结

今天分享几个 Flink1.17 新版本中常见的一些 SQL 函数的使用方式。

1 时间函数

  1. CURRENT_TIME() 返回当前时间(时分秒)

  2. CURRENT_DATE() 返回当前日期(年月日)

  3. LOCALTIME() 返回当前时区的当前时间(时分秒)

  4. LOCALTIMESTAMP() 返回当前时区的当前时间戳(年月日时分秒)

SELECT CURRENT_TIME()CURRENT_DATE()LOCALTIME()LOCALTIMESTAMP()

执行以上 SQL 语句会返回当前时间和日期的值,例如:

CURRENT_TIME CURRENT_DATE LOCALTIME LOCALTIMESTAMP
13:45:30.000 2022-04-19 13:45:30 2022-04-19 13:45:30

2 数值函数

  1. ABS(n) 返回 n 的值

  2. CEIL(n) 返回不小于 n 的小整数

  3. FLOOR(n) 返回不大于 n 的大整数

  4. LOG(n[,base]) 返回 n 的对数,可指定底数

  5. POWER(n,exponent) 返回 n 的 exponent 次幂

  6. ROUND(n[,d]) 返回四舍五入到 d 位小数的 n

  7. SIGN(n) 返回 n 的符号(1、0 或 -1)

SELECT ABS(-10)CEIL(3.14)FLOOR(3.14)LOG(10010)
POWER(23)ROUND(3.141592)SIGN(-10)

执行以上 SQL 语句会返回数值函数的计算结果,例如:

10 4 3 2.000 8.000 3.14 -1

3 字符串函数

  1. CONCAT(s1,s2,...) 将多个字符串连接为一个字符串

  2. LENGTH(s) 返回字符串 s 的长度

  3. LOWER(s) 将字符串 s 转换为小写

  4. UPPER(s) 将字符串 s 转换为大写

  5. TRIM([BOTH | LEADING | TRAILING] trimStr FROM s) 去除字符串 s 开头、结尾或两端的 trimStr 字符串

SELECT CONCAT('Hello'' ''world')LENGTH('Hello')LOWER('Hello')
UPPER('Hello')TRIM('x' FROM 'xxxHelloxxx')

执行以上 SQL 语句会返回字符串函数的计算结果,如下所示:

Hello world 5 hello HELLO xxHelloxxx

4 数组函数

  1. ARRAY[length](v1, v2, ..., vn) 创建一个长度为 length 的数组,元素为 v1, v2, …, vn

  2. ARRAY[1, v2, ..., vn] 创建一个包含元素 1, v2, …, vn 的数组

  3. CARDINALITY(a) 返回数组 a 的长度

  4. ELEMENT(a, n) 返回数组 a 的第 n 个元素

  5. ARRAY_CONTAINS(a, v) 判断数组 a 是否包含元素 v

SELECT ARRAY[123], ARRAY[12] || ARRAY[3], 
CARDINALITY(ARRAY[123]), ELEMENT(ARRAY[123], 2), 
ARRAY_CONTAINS(ARRAY[123], 2)

执行以上 SQL 语句会返回数组函数的计算结果,例如:

[1, 2, 3] [1, 2, 3] 3 2 true

以上就是关于 Flink 1.17 版本中一些常用的函数。

相关文章