2023年12月13日发(作者:诺基亚7020)
Flink基础(54):FLINK-SQL函数(17)内置函数(12)字符串函数(三)
语法
VARCHAR REPEAT(VARCHAR str, INT n)
入参
参数数据类型
str
nINT
说明
重复次数。
VARCHAR重复字符串值。
功能描述
返回以字符串值为str,重复次数为N的新的字符串。如果参数为null时,则返回null。如果重复次数为0或负数,则返回空串。
示例
测试数据
str(VARCHAR)n(INT)
J
Hello
Hello
null
测试语句
9
2
-9
9
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
len
startINT
INT
说明
在字符串a中开始截取的位置。
类截取的长度。
VARCHAR指定的字符串。
功能描述
获取字符串子串。截取从位置start开始,长度为len的子串。如果未指定len,则截取到字符串结尾。start从1开始,start为0当1看待,为负数时表示从字符串末尾倒序计算位置。
示例
测试数据
str(VARCHAR)nullstr(VARCHAR)
k1=v1;k2=v2
测试语句
null
SELECT SUBSTRING('', 222222222) as var1,
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)
空
语法
VARCHAR REVERSE(VARCHAR str)
1=v1;k2=v2v2v1空空k1=v1;k2=v2k1=v1;k2=v2null
入参
参数数据类型
str
说明
VARCHAR普通字符串值。
功能描述
反转字符串,返回字符串值的相反顺序。如果任一参数为null时,则返回null。
示例
测试数据
str1(VARCHAR)str2(VARCHAR)str3(VARCHAR)str4(VARCHAR)
iPhoneX
测试语句
AlibabaWorldnull
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
语法
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)
ababilAdlroWnull
入参
参数数据类型
str
sep
说明
VARCHAR被分隔的字符串。
VARCHAR分隔符的字符串。
截取的字段位置。indexINT
功能描述
以
sep
作为分隔符,将字符串
str
分隔成若干段,取其中的第
index
段。
index
从0开始,如果取不到字段,则返回null。如果任一参数为NULL,则返回null。
示例
测试数据
str(VARCHAR)sep(VARCHAR)index(INT)
Jack,John,Mary,
Jack,John,Mary,
Jack,John,Marynull
null
测试语句
,
2
3
0
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
pattern
说明
VARCHAR指定的字符串。
VARCHAR被替换的字符串。
replacementVARCHAR用于替换的字符串。
注意 请您按照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
2014-03-13
100-200
测试语句
SELECT REGEXP_REPLACE(str1, pattern1, replace1) as result
FROM T1;
空
(
(d+)
s
s
num
测试结果
result(VARCHAR)
20140313
null
null
2014-03-13
null
num-num
语法
VARCHAR REGEXP_EXTRACT(VARCHAR str, VARCHAR pattern, INT index)
入参
参数
str
数据类型说明
VARCHAR指定的字符串。
第几个被匹配的字符串。
patternVARCHAR匹配的字符串。
indexINT
注意 正则常量请按照Java代码来写。CodeGen会将SQL常量字符串自动转化为Java代码。如果要描述一个数字d,需要写成'd',即和Java中正则相同。
功能描述
使用正则模式Pattern匹配抽取字符串Str中的第Index个子串,Index从1开始,正则匹配提取。当参数为NULL或者正则不合法时,则返回NULL。
示例
测试数据
str1 (VARCHAR)pattern1(VARCHAR)index1 (INT)
foothebar
100-200
null
foothebar
foothebar
foothebar
测试语句
SELECT REGEXP_EXTRACT(str1, pattern1, index1) as result
FROM T1;
foo(.*?)(bar)
(d+)-(d+)
foo(.*?)(bar)
null
空
(
2
1
2
2
2
2
测试结果
result(VARCHAR)
bar
100
null
null
null
null
发布者:admin,转转请注明出处:http://www.yc00.com/num/1702408400a1214320.html
评论列表(0条)