Flink基礎(四十四):FLINK-SQL函數(6) 內置函數(二)字符串函數(一)


字符串函數

語法

MAP STR_TO_MAP(VARCHAR text) MAP STR_TO_MAP(VARCHAR text, VARCHAR listDelimiter, VARCHAR keyValueDelimiter) 

功能描述

使用listDelimiter將text分隔成K-V對,然后使用keyValueDelimiter分隔每個K-V對,組裝成MAP返回。默認listDelimiter為(,), keyValueDelimiter為(=)。

入參

參數 數據類型 說明
text VARCHAR 輸入文本。
listDelimiter VARCHAR 用來將text分隔成K-V對。默認為( ,)。
keyValueDelimiter VARCHAR 用來分隔每個key和value。默認為( =)。

測試語句

SELECT STR_TO_MAP('k1=v1,k2=v2')['k1'] as a FROM T1;

測試結果

 
a(VARCHAR)
v1

 

語法

INTEGER POSITION( x IN  y)

入參

 
參數 數據類型
x VARCHAR
y VARCHAR

功能描述

返回目標字符串x在被查詢字符串y里第一次出現的位置。如果目標字符串x在被查詢字符串y中不存在,返回值為0。

示例

  • 測試語句
     
    POSITION('in' IN 'china') as result
    FROM T1; 
  • 測試結果
     
    result(INT)
    3

語法

 
VARCHAR TRIM( VARCHAR x )

入參

 
參數 數據類型
x VARCHAR

功能描述

除掉一個字串中的字頭或字尾。最常見的用途是移除字首或字尾的空格。

示例

  • 測試語句
     
    SELECT TRIM(' Sample ') as result FROM T1; 
  • 測試結果
     
    result(VARCHAR)
    Sample

語法

 
VARCHAR OVERLAY ( (VARCHAR x PLACING VARCHAR y FROM INT start_position [ FOR INT length ]) )

入參

 
參數 數據類型
x VARCHAR
y VARCHAR
start_position INT
length(可選) INT

功能描述

用y替換x的子串。從start_position開始,替換length+1個字符。

示例

  • 測試語句
     
    OVERLAY('abcdefg' PLACING 'hij' FROM 2 FOR 2) as result
    FROM  T1;
  • 測試結果
     
    result(VARCHAR)
    ahijdefg

語法

 
 VARCHAR INITCAP(A)

入參

 
參數 數據類型
A VARCHAR

功能描述

返回字符串,每個字轉換器的第一個字母大寫,其余為小寫。

示例

  • 測試數據
     
    var1(VARCHAR)
    aADvbn
  • 測試語句
     
    SELECT INITCAP(var1)as aa FROM T1; 
  • 測試結果
     
    aa(VARCHAR)
    Aadvbn

 

 

語法

 
VARCHAR REPLACE(str1, str2, str3) 

入參

 
參數 數據類型 說明
str1 VARCHAR 原字符
str2 VARCHAR 目標字符
str3 VARCHAR 替換字符

功能描述

字符串替換函數。

示例

  • 測試數據
     
    str1(INT) str2(INT) str3(INT)
    alibaba blink blink flink
  • 測試語句
     
    SELECT REPLACE(str1, str2, str3) as `result` FROM T1; 
  • 測試結果
     
    result(VARCHAR)
    alibaba flink
 
 
 
 
 
 
 
 
 
 
 
 
 

 


免責聲明!

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



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