Flink基础(54):FLINK-SQL函数(17)内置函数(12)字符串函数(三)
语法
VARCHAR REPEAT(VARCHAR str, INT n)
⼊参
参数数据类型说明
str VARCHAR重复字符串值。
n INT重复次数。
功能描述
返回以字符串值为str,重复次数为N的新的字符串。如果参数为null时,则返回null。如果重复次数为0或负数,则返回空串。
⽰例
测试数据
str(VARCHAR)n(INT)
J9
Hello2
Hello-9
null9
测试语句
SELECT  REPEAT(str,n) as var1
FROM T1;
测试结果
var1(VARCHAR)
JJJJJJJJJ
HelloHello
null
语法
VARCHAR SUBSTRING(VARCHAR a, INT start)
VARCHAR SUBSTRING(VARCHAR a, INT start, INT len)
⼊参
参数数据类型说明
a VARCHAR指定的字符串。
start INT在字符串a中开始截取的位置。
len INT类截取的长度。
功能描述
获取字符串⼦串。截取从位置start开始,长度为len的⼦串。如果未指定len,则截取到字符串结尾。start从1开始,start为0当1看待,为负数时表⽰从字符串末尾倒序计算位置。
⽰例
测试数据
str(VARCHAR)nullstr(VARCHAR)
k1=v1;k2=v2null
测试语句
SELECT SUBSTRING('', 222222222) as var1,字符串长度17模式串长度
SUBSTRING(str, 2) as var2,
SUBSTRING(str, -2) as var3,
SUBSTRING(str, -2, 1) as var4,
SUBSTRING(str, 2, 1) as var5,
SUBSTRING(str, 22) as var6,
SUBSTRING(str, -22) as var7,
SUBSTRING(str, 1) as var8,
SUBSTRING(str, 0) as var9,
SUBSTRING(nullstr, 0) as var10
FROM T1;
测试结果
var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)var4(VARCHAR)var5(VARCHAR)var6(VARCHAR)var7(VARCHAR)var8(VARCHAR)var9(VARCHAR)var10(VARCHAR)空1=v1;k2=v2v2v1空空k1=v1;k2=v2k1=v1;k2=v2null
语法
VARCHAR REVERSE(VARCHAR str)
⼊参
参数数据类型说明
str VARCHAR普通字符串值。
功能描述
反转字符串,返回字符串值的相反顺序。如果任⼀参数为null时,则返回null。
⽰例
测试数据
str1(VARCHAR)str2(VARCHAR)str3(VARCHAR)str4(VARCHAR)
iPhoneX Alibaba World null
测试语句
SELECT  REVERSE(str1) as var1,REVERSE(str2) as var2,
REVERSE(str3) as var3,REVERSE(str4) as var4
FROM T1;
测试结果
var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)var4(VARCHAR)
XenohPi ababilA dlroW null
语法
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)
⼊参
参数数据类型说明
str VARCHAR被分隔的字符串。
sep VARCHAR分隔符的字符串。
index INT截取的字段位置。
功能描述
以sep作为分隔符,将字符串str分隔成若⼲段,取其中的第index段。index从0开始,如果取不到字段,则返回null。如果任⼀参数为NULL,则返回null。⽰例
测试数据
str(VARCHAR)sep(VARCHAR)index(INT)
Jack,John,Mary,2
Jack,John,Mary,3
Jack,John,Mary null0
null,0
测试语句
SELECT  SPLIT_INDEX(str, sep, index) as var1
FROM T1;
测试结果
var1(VARCHAR)
Mary
null
null
null
语法
VARCHAR REGEXP_REPLACE(VARCHAR str, VARCHAR pattern, VARCHAR replacement)
⼊参
参数数据类型说明
str VARCHAR指定的字符串。
pattern VARCHAR被替换的字符串。
replacement VARCHAR⽤于替换的字符串。
注意请您按照Java代码编写正则常量。Codegen会⾃动将SQL常量字符串转化为Java代码。描述⼀个数值(\d)的正则表达式和Java中⼀样,为'\d'。功能描述
⽤字符串replacement替换字符串str中正则模式为pattern的部分,并返回新的字符串。如果参数为NULL或者正则不合法时,则返回NULL。
⽰例
测试数据
str1(VARCHAR)pattern1(VARCHAR)replace1(VARCHAR)
2014-03-13-空
NULL-空
str1(VARCHAR)pattern1(VARCHAR)replace1(VARCHAR)
2014-03-13-NULL
2014-03-13空s
2014-03-13(s
100-200(\d+)num
测试语句
SELECT  REGEXP_REPLACE(str1, pattern1, replace1) as result
FROM T1;
测试结果
result(VARCHAR)
20140313
null
null
2014-03-13
null
num-num
语法
VARCHAR REGEXP_EXTRACT(VARCHAR str, VARCHAR pattern, INT index)
⼊参
参数数据类型说明
str VARCHAR指定的字符串。
pattern VARCHAR匹配的字符串。
index INT第⼏个被匹配的字符串。
注意正则常量请按照Java代码来写。CodeGen会将SQL常量字符串⾃动转化为Java代码。如果要描述⼀个数字\d,需要写成'\d',即和Java中正则相同。功能描述
使⽤正则模式Pattern匹配抽取字符串Str中的第Index个⼦串,Index从1开始,正则匹配提取。当参数为NULL或者正则不合法时,则返回NULL。
⽰例
测试数据
str1 (VARCHAR)pattern1(VARCHAR)index1 (INT)
foothebar foo(.*?)(bar)2
100-200(\\d+)-(\\d+)1
null foo(.*?)(bar)2
foothebar null2
foothebar空2
foothebar(2
测试语句
SELECT  REGEXP_EXTRACT(str1, pattern1, index1) as result
FROM T1;
测试结果
result(VARCHAR)
bar
100
null
null
null
null

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。