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