Flink基础(四十四):FLINK SQL(二十) 内置函数(二)字符串函数(一)

字符串函数

语法

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
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/qiu-hua/p/15000243.html