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
本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15000243.html