语法
VARCHAR REPEAT(VARCHAR str, INT n)
入参
参数 | 数据类型 | 说明 |
---|---|---|
str | VARCHAR | 重复字符串值。 |
n | INT | 重复次数。 |
功能描述
返回以字符串值为str,重复次数为N的新的字符串。如果参数为null时,则返回null。如果重复次数为0或负数,则返回空串。
示例
- 测试数据
str(VARCHAR) n(INT) J 9 Hello 2 Hello -9 null 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 | VARCHAR | 指定的字符串。 |
start | INT | 在字符串a中开始截取的位置。 |
len | INT | 类截取的长度。 |
功能描述
获取字符串子串。截取从位置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) 空 1=v1;k2=v2 v2 v 1 空 空 k1=v1;k2=v2 k1=v1;k2=v2 null
语法
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 null 0 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 - 空 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 null 2 foothebar 空 2 foothebar ( 2 - 测试语句
SELECT REGEXP_EXTRACT(str1, pattern1, index1) as result FROM T1;
- 测试结果
result(VARCHAR) bar 100 null null null null