Flink基礎(53):FLINK-SQL函數(16)內置函數(11)字符串函數(二)


語法

VARCHAR JSON_VALUE(VARCHAR content, VARCHAR path)

入參

  • content

    VARCHAR類型,需要解析的JSON對象,使用字符串表示。

  • path
    VARCHAR類型,解析JSON的路徑表達式。 目前path支持如下表達式。
     
    符號 功能
    $ 根對象
    [] 數組下標
    * 數組通配符
    . 取子元素

功能描述

從JSON字符串中提取指定path的值,不合法的JSON和null都統一返回null。

示例

  • 測試數據
     
    id(INT) json(VARCHAR) path1(VARCHAR)
    1 [10, 20, [30, 40]] $[2][*]
    2 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[*]
    3 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg",hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[1]
    4 [10, 20, [30, 40]] NULL
    5 NULL $[2][*]
    6 "{xx]" "$[2][*]"
  • 測試語句
     
    SELECT id, JSON_VALUE(json, path1) AS `value` FROM T1;
  • 測試結果
     
    id (INT) value (VARCHAR)
    1 [30,40]
    2 ["h0","h1","h2"]
    3 H1
    4 NULL
    5 NULL
    6 NULL

語法

 
VARCHAR CHR(INT ascii)

入參

 
參數 數據類型 說明

ascii

INT 是0到255之間的整數。如果不在此范圍內,則返回NULL。

功能描述

將ASCII碼轉換為字符。

示例

  • 測試數據
     
    int1(INT) int2(INT) int3(INT)
    255 97 65
  • 測試語句
     
    SELECT CHR(int1) as var1, CHR(int2) as var2, CHR(int3) as var3 FROM T1; 
  • 測試結果
     
    var1(VARCHAR) var2(VARCHAR) var3(VARCHAR)
    ÿ a A

 

語法

 
 VARCHAR CONCAT(VARCHAR var1, VARCHAR var2, ...)  

入參

 
參數 數據類型 說明
var1 VARCHAR 普通字符串值
var2 VARCHAR 普通字符串值

功能描述

連接兩個或多個字符串值從而組成一個新的字符串。如果任一參數為NULL時,則跳過該參數。

示例

  • 測試數據
     
    var1(VARCHAR) var2(VARCHAR) var3(VARCHAR)
    Hello My World
    Hello null World
    null null World
    null null null
  • 測試語句
     
    SELECT CONCAT(var1, var2, var3) as var FROM T1; 
  • 測試結果
     
    var(VARCHAR)
    HelloMyWorld
    HelloWorld
    World
    N/A

 

語法

VARCHAR CONCAT_WS(VARCHAR separator, VARCHAR var1, VARCHAR var2, ...)

入參

 
參數 數據類型 說明
separator VARCHAR 分隔符
var1 VARCHAR -
var2 VARCHAR -

功能描述

將每個參數值和第一個參數separator指定的分隔符依次連接到一起組成新的字符串,長度和類型取決於輸入值。

 
說明 如果separator取值為null,則將separator視作與空串進行拼接。如果其它參數為NULL,在執行拼接過程中跳過取值為NULL的參數。

示例

  • 測試數據
     
    sep(VARCHAR) str1(VARCHAR) str2(VARCHAR) str3(VARCHAR)
    | Jack Harry John
    null Jack Harry John
    | null Harry John
    | Jack null null
  • 測試語句
     
    SELECT CONCAT_WS(sep, str1, str2, str3) as var FROM T1;
  • 測試結果
     
    var(VARCHAR)
    Jack|Harry|John
    JackHarryJohn
    Harry|John
    Jack

語法

 
VARCHAR LPAD(VARCHAR str, INT len, VARCHAR pad)    

入參

 
參數 數據類型 說明
str VARCHAR 啟始的字符串。
len INT 新的字符串的長度。
pad VARCHAR 需要重復補充的字符串。

功能描述

字符串str左端填充若干個字符串pad,直到新的字符串達到指定長度len為止。

任意參數為null時返回null。

len為負數時返回為null。

pad為空串時,如果len不大於str長度,返回str裁剪后的結果。如果len大於str長度時,則返回null。

示例

  • 測試數據

     
    str(VARCHAR) len(INT) pad(VARCHAR)
    -2
    HelloWorld 15 John
    John 2 C
    C 4 HelloWorld
    null 2 C
    c 2 null
    asd 2
    2 s
    asd 4
    0
  • 測試語句

     
    SELECT LPAD(str, len, pad) AS result FROM T1; 
  • 測試結果
     
    result(VARCHAR)
    null
    JohnJHelloWorld
    Jo
    HelC
    null
    null
    as
    ss
    null

語法

 
VARCHAR RPAD(VARCHAR str, INT len, VARCHAR pad) 

入參

 
參數 數據類型 說明
str VARCHAR 啟始的字符串。
len INT 新的字符串的長度。
pad VARCHAR 需要重復補充的字符串。

功能描述

字符串str右端填充若干個字符串pad,直到新的字符串達到指定長度 len為止。
  • 如果任意參數為null時,則返回null。
  • 如果len長度為負數時,則返回null。
  • pad為空串,如果len不大於str長度時,則返回str裁剪后的結果。
  • 如果len大於str長度,則返回null。

示例

  • 測試數據
     
    str(VARCHAR) len(INT) pad(VARCHAR)
    -2
    HelloWorld 15 John
    John 2 C
    C 4 HelloWorld
    null 2 C
    c 2 null
    asd 2
    2 s
    asd 4
    0
  • 測試語句
     
    SELECT RPAD(str, len, pad) as result FROM T1; 
  • 測試結果
     
    result(VARCHAR)
    null
    HelloWorldJohnJ
    Jo
    CHel
    null
    null
    as
    ss
    null

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM