• REPEAT

语法

 
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
  • SUBSTRING

语法

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

 

  • REVERSE

语法

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
  • SPLIT_INDEX

语法

 
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)

入参

 
参数 数据类型 说明
str VARCHAR 被分隔的字符串。
sep VARCHAR 分隔符的字符串。
index INT 截取的字段位置。

功能描述

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
  • REGEXP_REPLACE

语法

VARCHAR REGEXP_REPLACE(VARCHAR str, VARCHAR pattern, VARCHAR replacement)

入参

 
参数 数据类型 说明
str VARCHAR 指定的字符串。
pattern VARCHAR 被替换的字符串。
replacement VARCHAR 用于替换的字符串。
 
注意 请您按照Java代码编写正则常量。Codegen会自动将SQL常量字符串转化为Java代码。描述一个数值'\d'

功能描述

用字符串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
  • REGEXP_EXTRACT

语法

 
VARCHAR REGEXP_EXTRACT(VARCHAR str, VARCHAR pattern, INT index)       

入参

 
参数 数据类型 说明
str VARCHAR 指定的字符串。
pattern VARCHAR 匹配的字符串。
index INT 第几个被匹配的字符串。
 
注意 正则常量请按照Java代码来写。CodeGen会将SQL常量字符串自动转化为Java代码。如果要描述一个数字'\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

 

相关文章: