Flink基础(54):FLINK-SQL函数(17)内置函数(12)字符串函数(三)

Flink基础(54):FLINK-SQL函数(17)内置函数(12)字符串函数(三)


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信