Flink1.17 版本常見的 SQL 函式總結

大資料技術前線發表於2023-04-18

來源:3分鐘秒懂大資料

大家好,我是土哥。

今天分享幾個 Flink1.17 最新版本中常見的一些 SQL 函式的使用方式。

1 時間函式

  1. CURRENT_TIME() 返回當前時間(時分秒)

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

  3. LOCALTIME() 返回當前時區的當前時間(時分秒)

  4. LOCALTIMESTAMP() 返回當前時區的當前時間戳(年月日時分秒)

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

執行以上 SQL 語句會返回當前時間和日期的值,例如:

CURRENT_TIMECURRENT_DATELOCALTIMELOCALTIMESTAMP
13:45:30.0002022-04-1913:45:302022-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 語句會返回數值函式的計算結果,例如:

10432.0008.0003.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 world5helloHELLOxxHelloxxx

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]32true

以上就是關於 Flink 1.17 版本中一些常用的函式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027827/viewspace-2946458/,如需轉載,請註明出處,否則將追究法律責任。

相關文章