...
| 函数 | 描述 |
---|
1 | instr(str, substr) | 函数说明:返回从1开始的字符出现索引 示例:
代码块 |
---|
| > SELECT instr('SparkSQL', 'SQL');
6 |
|
---|
2 | left(str, len) | 函数说明:返回第一个 n 字符 示例:
代码块 |
---|
| > SELECT left('Spark SQL', 3);
Spa
> SELECT left(encode('Spark SQL', 'utf-8'), 3);
Spa |
|
---|
3 | locate, position | 函数说明:返回子字符串第一次出现的位置 示例: 代码块 |
---|
| > SELECT locate('bar', 'foobarbar');
4
> SELECT locate('bar', 'foobarbar', 5);
7
> SELECT POSITION('bar' IN 'foobarbar');
4 |
|
---|
4 | parse_url | 函数说明:提取URL的一部分 示例:
代码块 |
---|
| > SELECT parse_url('http://spark.apache.org/path?query=1', 'HOST');
spark.apache.org
> SELECT parse_url('http://spark.apache.org/path?query=1', 'QUERY');
query=1
> SELECT parse_url('http://spark.apache.org/path?query=1', 'QUERY', 'query');
1 |
|
---|
5 | repeat | 函数说明:返回将给定字符串值重复n次的字符串。 示例: 代码块 |
---|
| > SELECT repeat('123', 2);
123123 |
|
---|
6 | substring(str, pos[, len]) substr(str, pos[, len]) | 函数说明:返回str从pos开始、长度为len的子字符串,或字节数组从pos结束、长度为len的切片。 示例:
代码块 |
---|
| > SELECT substr('Spark SQL', 5);
k SQL
> SELECT substr('Spark SQL', -3);
SQL
> SELECT substr('Spark SQL', 5, 1);
k
> SELECT substr('Spark SQL' FROM 5);
k SQL
> SELECT substr('Spark SQL' FROM -3);
SQL
> SELECT substr('Spark SQL' FROM 5 FOR 1);
k
> SELECT substr(encode('Spark SQL', 'utf-8'), 5);
k SQL |
|
---|
7 | substring_index(str,delim,count) | 函数说明:返回子字符串的索引。substring_index(str,delim,count),str:要处理的字符串;delim:分隔符;count:计数 示例:substring_index([企业名称], '有限公司', 1)
|
---|
8 | split(str, regex, limit) | 函数说明:拆分字符串。在匹配regex的出现处拆分str,并返回长度最多为limit的数组 示例:split(str, regex, limit) - str-要拆分的字符串表达式。
- regex-表示正则表达式的字符串。正则表达式字符串应该是Java正则表达式。表示正则表达式或者是字符串。
- limit-一个整数表达式,用于控制正则表达式的应用次数。
- limit>0:结果数组的长度不会超过limit,并且结果数组的最后一个条目将包含最后匹配的regex之外的所有输入。
- limit<=0:regex将被应用尽可能多次,并且得到的数组可以是任何大小。
代码块 |
---|
| > SELECT split('oneAtwoBthreeC', '[ABC]');
["one","two","three",""]
> SELECT split('oneAtwoBthreeC', '[ABC]', -1);
["one","two","three",""]
> SELECT split('oneAtwoBthreeC', '[ABC]', 2);
["one","twoBthreeC"] |
|
---|
5、字符串替换
spark sql 正则通配符请参考:spark的正则 sparksql正则匹配_mob6454cc6b413f的技术博客_51CTO博客
| 函数 | 描述 |
---|
1 | regexp_extract(str, regexp, idx) | 函数说明:提取与正则表达式匹配的内容,将字符串按照指定规则拆分为组后,返回指定组的字符串。 str:是待拆分的字符串 regexp:是常量或正则表达式 idx:是数组里要的下标值 代码块 |
---|
language | sql |
---|
theme | Emacs |
---|
title | 示例 |
---|
| > SELECT regexp_extract('100-200', '(\\d+)-(\\d+)', 1);
100
> SELECT REGEXP_EXTRACT('8d99d8', '8d(\\d+)d8', 1);
99 |
|
---|
2 |
---|
regex_replaceregexp_replace(strA,strB,strC ) | 函数说明:返回替换匹配正则表达式的内容 将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数 代码块 |
---|
language | sql |
---|
theme | Emacs |
---|
title | 示例 |
---|
| > SELECT regexp_replace(' |
|
---|
ABCabcabcDEFABCDEFImage AddedImage Added |
3 | replace(str, search, replace) | 函数说明:替换字符串的所有实例 代码块 |
---|
language | sql |
---|
theme | Emacs |
---|
title | 示例 |
---|
| > SELECT replace('ABCabc', 'abc', 'DEF');
ABCDEF |
|
---|
4 | translate |
---|
函数说明:替换字符串中的值(input, from, to) | 函数说明:替换字符串中的值。通过将[from]中的字符串中的字符替换为[to]中的字符串中的相应字符来翻译[input]字符串。 代码块 |
---|
language | sql |
---|
theme | Emacs |
---|
title | 示例 |
---|
| > SELECT translate('AaBbCc', 'abc', '123');
A1B2C3
> SELECT translate("2.10.100.103.3","2.10","");
33 |
|
---|
6、字符串补位
| 函数 | 描述 |
---|
1 | initcap(str) | 函数说明:将字符串更改为标题大小写 |
---|
2 | lcase(str), lower(str) | 函数说明:将字符串更改为全部小写 |
---|
3 | lpad(str) | 函数说明:垫住字符串的左侧 |
---|
4 | rpad(str) | 函数说明:将字符串的右侧填充 |
---|
5 | rtrim(str) | 函数说明:删除尾随空格 |
---|
6 | trim(str) | 函数说明:删除前导字符和尾随字符 |
---|
7 | ucase(str), upper(str) | 函数说明:将字符串更改为全部大写 |
---|
...