字符串函数概览
DLI所支持的字符函数如字符串函数所示。
| 
       函数  | 
     
       命令格式  | 
     
       返回值  | 
     
       功能简介  | 
    
|---|---|---|---|
| 
       ascii(string <str>)  | 
     
       BIGINT  | 
     
       返回字符串中首字符的数字值。  | 
    |
| 
       concat(array<T> <a>, array<T> <b>[,...]),concat(string <str1>, string <str2>[,...])  | 
     
       ARRAY或STRING  | 
     
       连接多个字符串,合并为一个字符串,可以接受任意数量的输入字符串。  | 
    |
| 
       concat_ws(string <separator>, string <str1>, string <str2>[,...]),concat_ws(string <separator>, array<string> <a>)  | 
     
       ARRAY或STRUCT  | 
     
       连接多个字符串,字符串之间以指定的分隔符分隔。  | 
    |
| 
       char_matchcount(string <str1>, string <str2>)  | 
     
       BIGINT  | 
     
       计算str1中有多少个字符出现在str2中。  | 
    |
| 
       encode(string <str>, string <charset>)  | 
     
       BINARY  | 
     
       将str按照charset格式进行编码。  | 
    |
| 
       find_in_set(string <str1>, string <str2>)  | 
     
       BIGINT  | 
     
       查找字符串str1在以逗号(,)分隔的字符串str2中的位置,从1开始计数。  | 
    |
| 
       get_json_object(string <json>, string <path>)  | 
     
       STRING  | 
     
       根据所给路径对json对象进行解析,当json对象非法时将返回NULL。  | 
    |
| 
       instr(string <str>, string <substr>)  | 
     
       INT  | 
     
       返回substr在str中最早出现的下标。当参数中出现NULL时,返回NULL,当str中不存在substr时返回0,注意下标从1开始。  | 
    |
| 
       instr1(string <str1>, string <str2>[, bigint <start_position>[, bigint <nth_appearance>]])  | 
     
       BIGINT  | 
     
       instr1函数用于计算子串str2在字符串str1中的位置。  | 
    |
| 
       initcap(string A)  | 
     
       STRING  | 
     
       将文本字符串转换成首字母大写其余字母小写的形式。  | 
    |
| 
       keyvalue(string <str>,[string <split1>,string <split2>,] string <key>)  | 
     
       STRING  | 
     
       用于计算将字符串str按照split1进行切分,并按split2将每组变成Key-Value对,返回key所对应的Value。  | 
    |
| 
       length(string <str>)  | 
     
       BIGINT  | 
     
       返回字符串的长度。  | 
    |
| 
       lengthb(string <str>)  | 
     
       STRING  | 
     
       计算字符串str以字节为单位的长度。  | 
    |
| 
       levenshtein(string A, string B)  | 
     
       INT  | 
     
       返回两个字符串之间的Levenshtein距离,如levenshtein('kitten','sitting') =3。  | 
    |
| 
       locate(string <substr>, string <str>[, bigint <start_pos>])  | 
     
       BIGINT  | 
     
       用于在str中查找substr的位置。  | 
    |
| 
       lower(string A) ,lcase(string A)  | 
     
       STRING  | 
     
       将文本字符串转换成字母全部小写的形式。  | 
    |
| 
       lpad(string <str1>, int <length>, string <str2>)  | 
     
       STRING  | 
     
       用于返回指定长度的字符串,给定字符串str1长度小于指定长度length时,由指定字符str2从左侧填补。  | 
    |
| 
       ltrim([<trimChars>,] string <str>)  | 
     
       STRING  | 
     
       删除字符串左边的空格,其他的空格保留。  | 
    |
| 
       parse_url(string urlString, string partToExtract [, string keyToExtract])  | 
     
       STRING  | 
     
       返回给定URL的指定部分,partToExtract的有效值包括HOST,PATH, QUERY, REF, PROTOCOL, AUTHORITY,FILE和USERINFO。 例如:parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') 返回 'facebook.com'.。 当第二个参数为QUERY时,可以使用第三个参数提取特定参数的值,例如: parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') 返回'v1'。  | 
    |
| 
       printf(String format, Obj... args)  | 
     
       STRING  | 
     
       将输入按特定格式打印输出。  | 
    |
| 
       regexp_count(string <source>, string <pattern>[, bigint <start_position>])  | 
     
       BIGINT  | 
     
       用于计算source中从start_position位置开始,匹配指定pattern的子串数。  | 
    |
| 
       regexp_extract(string <source>, string <pattern>[, bigint <groupid>])  | 
     
       STRING  | 
     
       用于将字符串source按照pattern的分组规则进行字符串匹配,返回第groupid个组匹配到的字符串内容。  | 
    |
| 
       replace(string <str>, string <old>, string <new>)  | 
     
       STRING  | 
     
       将字符串中与指定字符串匹配的子串替换为另一字符串。  | 
    |
      
  | 
     
       STRING  | 
     
      
  | 
    |
| 
       regexp_replace1(string <source>, string <pattern>, string <replace_string>[, bigint <occurrence>])  | 
     
       STRING  | 
     
       将source字符串中第occurrence次匹配pattern的子串,替换成指定字符串replace_string后,返回结果字符串。  | 
    |
| 
       regexp_instr(string <source>, string <pattern>[,bigint <start_position>[, bigint <occurrence>[, bigint <return_option>]]])  | 
     
       BIGINT  | 
     
       用于计算字符串source从start_position开始,与pattern第occurrence次匹配的子串的起始或结束位置。  | 
    |
| 
       regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]])  | 
     
       STRING  | 
     
       用于计算从start_position位置开始,source中第occurrence次匹配指定pattern的子串。  | 
    |
| 
       repeat(string <str>, bigint <n>)  | 
     
       STRING  | 
     
       重复N次字符串。  | 
    |
| 
       reverse(string <str>)  | 
     
       STRING  | 
     
       返回倒序字符串。  | 
    |
| 
       rpad(string <str1>, int <length>, string <str2>)  | 
     
       STRING  | 
     
       用于将字符串str2将字符串str1向右补足到length位。  | 
    |
| 
       rtrim([<trimChars>, ]string <str>), rtrim(trailing [<trimChars>] from <str>)  | 
     
       STRING  | 
     
       删除字符串右边的空格,其他的空格保留。  | 
    |
| 
       soundex(string <str>)  | 
     
       STRING  | 
     
       从str返回一个soundex字符串,如soundex('Miller')= M460。  | 
    |
| 
       space(bigint <n>)  | 
     
       STRING  | 
     
       返回指定数量的空格。  | 
    |
| 
       substr(string <str>, bigint <start_position>[, bigint <length>]) ,substring(string <str>, bigint <start_position>[, bigint <length>])  | 
     
       STRING  | 
     
       用于返回字符串str从start_position开始,长度为length的子串。  | 
    |
| 
       substring_index(string <str>, string <separator>, int <count>)  | 
     
       STRING  | 
     
       用于截取字符串str第count个分隔符之前的字符串。如果count为正,则从左边开始截取。如果count为负,则从右边开始截取。  | 
    |
| 
       split_part(string <str>, string <separator>, bigint <start>[, bigint <end>])  | 
     
       STRING  | 
     
       用于依照分隔符separator拆分字符串str,返回从start部分到end部分的子串(闭区间)。  | 
    |
| 
       translate(string|char|varchar input, string|char|varchar from, string|char|varchar to)  | 
     
       STRING  | 
     
       将input字符串中的所出现的字符或者字符串from用字符或者字符串to替换。例如:将abcde中的bcd替换成BCD,translate("abcde", "bcd", "BCD")  | 
    |
| 
       trim([<trimChars>,]string <str>), trim([BOTH] [<trimChars>] from <str>)  | 
     
       STRING  | 
     
       删除字符串两端的空格,字符之间的空格保留。  | 
    |
| 
       upper(string A) ,ucase(string A)  | 
     
       STRING  | 
     
       将文本字符串转换成字母全部大写的形式。  |