字符串函数

  • STR_TO_MAP

语法

text)
MAP STR_TO_MAP(VARCHAR text, VARCHAR listDelimiter, VARCHAR keyValueDelimiter) 

功能描述

使用listDelimiter将text分隔成K-V对,然后使用keyValueDelimiter分隔每个K-V对,组装成MAP返回。默认listDelimiter为(,), keyValueDelimiter为(=)。

入参

参数 数据类型 说明
text VARCHAR 输入文本。
listDelimiter VARCHAR 用来将text分隔成K-V对。默认为( ,)。
keyValueDelimiter VARCHAR 用来分隔每个key和value。默认为( =)。

测试语句

SELECT
  STR_TO_MAP('k1=v1,k2=v2')['k1'] as a
FROM T1;

测试结果

a(VARCHAR)
 
v1

 

  • POSITION

语法

INTEGER POSITION( x IN  y)

入参

 
参数 数据类型
x VARCHAR
y VARCHAR

功能描述

返回目标字符串x在被查询字符串y里第一次出现的位置。如果目标字符串x在被查询字符串y中不存在,返回值为0。

示例

  • 测试语句
     
    POSITION('in' IN 'china') as result
    FROM T1; 
  • 测试结果 result(INT)
     
    3
  • TRIM

语法

 
VARCHAR TRIM( VARCHAR x )

入参

 
参数 数据类型
x VARCHAR

功能描述

除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空格。

示例

  • 测试语句
     
    SELECT TRIM('   Sample   ') as result
    FROM   T1;    
  • 测试结果 result(VARCHAR)
     
    Sample
  • OVERLAY

语法

 
VARCHAR OVERLAY ( (VARCHAR x PLACING VARCHAR y FROM INT start_position [ FOR INT length ]) )

入参

 
参数 数据类型
x VARCHAR
y VARCHAR
start_position INT
length(可选) INT

功能描述

用y替换x的子串。从start_position开始,替换length+1个字符。

示例

  • 测试语句
     
    OVERLAY('abcdefg' PLACING 'hij' FROM 2 FOR 2) as result
    FROM  T1;
  • 测试结果 result(VARCHAR)
     
    ahijdefg
  • INITCAP

语法

 
 VARCHAR INITCAP(A)

入参

 
参数 数据类型
A VARCHAR

功能描述

返回字符串,每个字转换器的第一个字母大写,其余为小写。

示例

  • 测试数据 var1(VARCHAR)
     
    aADvbn
  • 测试语句
     
    SELECT INITCAP(var1)as aa
    FROM T1;  
  • 测试结果 aa(VARCHAR)
     
    Aadvbn

 

  • REPLACE
 

语法

 
VARCHAR REPLACE(str1, str2, str3)     

入参

 
参数 数据类型 说明
str1 VARCHAR 原字符
str2 VARCHAR 目标字符
str3 VARCHAR 替换字符

功能描述

字符串替换函数。

示例

  • 测试数据
     
    str1(INT) str2(INT) str3(INT)
    alibaba blink blink flink
  • 测试语句
     
    SELECT REPLACE(str1, str2, str3) as `result`
    FROM T1;     
  • 测试结果 result(VARCHAR)
     
    alibaba flink
 
 
 
 
 
 
 
 
 
 
 
 
 

 

相关文章: