zoukankan      html  css  js  c++  java
  • 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)
      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

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15058243.html

  • 相关阅读:
    资料-Java基础:多线程--创建启动线程的多种方式
    资料-Java基础:基础总结-运算符
    资料-Java基础:父子类加载过程
    总结提纲-逐渐补充
    资料-Java基础:类加载处理过程
    资料-Java基础:双亲委派模型
    资料-Java基础:类加载方式及差异
    转载:java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
    无法启动IIS Express web服务,端口正在使用!
    关于在本地新建数据库作业,无法成功的问题【本地SQLSERVER链接的服务器数据库】
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15058243.html
Copyright © 2011-2022 走看看