Flink基础(56):FLINK-SQL函数(19)内置函数(14)字符串函数(五)

语法

BOOLEAN REGEXP(VARCHAR str, VARCHAR pattern) 

入参

 
参数数据类型说明
str VARCHAR 指定的字符串。
pattern VARCHAR 指定的匹配模式。

功能描述

对指定的字符串执行一个正则表达式搜索,并返回一个Boolean值表示是否找到指定的匹配模式。如果str或者pattern为空或为NULL时,则返回false。

示例

  • 测试数据
     
    str1(VARCHAR)pattern1(VARCHAR)
    k1=v1;k2=v2 k2*
    k1:v1|k2:v2 k3
    null k3
    k1:v1|k2:v2 null
    k1:v1|k2:v2 (
  • 测试语句
     
    SELECT  REGEXP(str1, pattern1) AS result
    FROM T1;              
  • 测试结果
     
    result(BOOLEAN)
    true
    false
    false
    false
    false

语法

 
VARCHAR PARSE_URL(VARCHAR urlStr, VARCHAR partToExtract [, VARCHAR key])

入参

 
参数数据类型说明
urlStr VARCHAR 链接
partToExtract VARCHAR 指定链接中解析的部分。取值如下:
  • HOST
  • PATH
  • QUERY
  • REF
  • PROTOCOL
  • FILE
  • AUTHORITY
  • USERINFO
key VARCHAR 可选,指定截取部分中,具体的键。

功能描述

返回urlStr中指定的部分解析后的值。如果urlStr参数值为null时,则返回值为null。

示例

  • 测试数据
     
    url1(VARCHAR)nullstr(VARCHAR)
    http://facebook.com/path/p1.php?query=1 null
  • 测试语句
     
    SELECT PARSE_URL(url1, 'QUERY', 'query') as var1,
           PARSE_URL(url1, 'QUERY') as var2,
           PARSE_URL(url1, 'HOST') as var3,
           PARSE_URL(url1, 'PATH') as var4,
           PARSE_URL(url1, 'REF') as var5,
           PARSE_URL(url1, 'PROTOCOL') as var6,
           PARSE_URL(url1, 'FILE') as var7,
           PARSE_URL(url1, 'AUTHORITY') as var8,
           PARSE_URL(nullstr, 'QUERY') as var9,
           PARSE_URL(url1, 'USERINFO') as var10,
           PARSE_URL(nullstr, 'QUERY', 'query') as var11
    FROM T1; 
  • 测试结果
     
    var1(VARCHAR)var2(VARCHAR)var3(VARCHAR)var4(VARCHAR)var5(VARCHAR)var6(VARCHAR)var7(VARCHAR)var8(VARCHAR)var9(VARCHAR)var10(VARCHAR)var11(VARCHAR)
    1 query=1 facebook.com /path/p1.php null http /path/p1.php?query=1 facebook.com null null null

语法

 
VARCHAR TO_BASE64(bin)         

入参

 
参数数据类型
bin BINARY

功能描述

将BINARY类型数据转换成对应base64编码的字符串输出。

示例

  • 测试数据
     
    c(VARCHAR)
    SGVsbG8gd29ybGQ=
    SGk=
    SGVsbG8=
  • 测试语句
     
    SELECT  TO_BASE64(FROM_BASE64(c)) as var1
    FROM T1;       
  • 测试结果
     
    var1(VARCHAR)
    SGVsbG8gd29ybGQ=
    SGk=
    SGVsbG8=

语法

 
BINARY FROM_BASE64(str)

入参

 
参数数据类型说明
str VARCHAR base64编码的字符串。

功能描述

将base64编码的字符串str解析成对应的binary类型数据输出。

示例

  • 测试数据
     
    a(INT)b(BIGINT)c(VARCHAR)
    1 1L null
  • 测试语句
     
    SELECT 
    from_base64(c) as var1,from_base64('SGVsbG8gd29ybGQ=') as var2 
    FROM T1; 
  • 测试结果
     
    var1(BINARY)var2(BINARY)
    null Byte Array: [72('H'), 101('e'), 108('l'), 108('l'), 111('o'), 32(' '), 119('w'), 111('o'), 114('r'), 108('l'), 100('d')]

语法

 
INT instr( string1, string2 ) 
INT instr( string1, string2 [, start_position [, nth_appearance ] ] )   

入参

 
参数数据类型说明
string1 VARCHAR 源字符串,要在该字符串中查找string2。
string2 VARCHAR 目标字符串,string1中查找的字符串。
start_position INT 起始位置,表示在string1中开始查找的其实位置:
  • 该参数省略(默认): 字符串索引从1开始。
  • 该参数为正:从左到右开始检索。
  • 该参数为负:从右到左开始检索。
nth_appearance INT 匹配序号代表要查找第几次出现的string2:
  • 该参数省略(默认):第1次出现。
  • 该参数为负:系统报错。

功能描述

返回目标字符串在源字符串中的位置,如果在源字符串中未找到目标字符串,则返回0。

示例

  • 测试数据
     
    string1(VARCHAR)
    helloworld
  • 测试语句
     
    SELECT 
    instr('helloworld','lo') as res1,
    instr('helloworld','l',-1,1) as res2,   
    instr('helloworld','l',3,2) as res3
    FROM T1;            
  • 测试结果
     
    res1(INT)res2(INT)res3(INT)
    4 9 4

 

posted @ 2021-07-25 17:21  秋华  阅读(1782)  评论(0编辑  收藏  举报