页面树结构
转至元数据结尾
转至元数据起始

1、字符串判断


函数

描述

1

coalesce(expr1, expr2, ...)

:空值处理

函数说明:返回第一个非空参数,类似ifnull(expr1, expr2),可以设置多个表达式

示例:如果处理部门为空,则填充发起部门。

2

nullif(expr1, expr2) 

等值判定为空

函数说明:如果expr1等于expr2,则返回null,否则返回expr1;

示例:


> SELECT nullif(2, 2);

NULL
3

nvl(expr1, expr2)

空值处理

函数说明:如果为null,则返回值;支持2个表达式

示例:如果处理部门为空,则填充发起部门。

4

nvl2(expr1, expr2, expr3)

:空值处理

函数说明:如果不为null,则返回值,支持3个表达式

示例:

> SELECT nvl2(NULL, 2, 1); 1
5

endswith(left, right)

:结尾判断

函数说明:返回布尔值。如果从左往右,以右侧字符串结尾,则该值为True。如果任一输入表达式为NULL,则返回NULL。否则,返回False。左边或右边都必须是STRING或BINARY类型。

示例:


> SELECT endswith('Spark SQL', 'SQL');

true

> SELECT endswith('Spark SQL', 'Spark');

false

2、字符串拼接


函数

描述

1

concat(col1, col2, ..., colN)

拼接字符串

函数说明:连接字符串col1, col2, ..., colN

示例:


> SELECT concat('Spark', 'SQL');

SparkSQL
2

concat_ws(sep,[column2],…,[columnN])
拼接字符串

函数说明:

concat_ws(“sep”,[column2],…,[columnN]):返回这N列拼接的带分隔符的字符串。

concat_ws(“sep”, str1, str2,…, strN):返回这N个字符串拼接后的字符串。

  • 参数说明
    sep:分隔符
    column1:所选列名

示例:


>SELECT concat_ws(' ', 'Spark', 'SQL');

Spark SQL

3、字符串长度


函数

描述

1

length(expr) 

:字符串长度

函数说明:返回字符串的长度

示例:


> SELECT length('Spark SQL ');

10

> SELECT length(x'537061726b2053514c');

9
2

CHAR_LENGTH(expr) 

:字符串长度

函数说明:返回字符串的长度

示例:


> SELECT CHAR_LENGTH('Spark SQL ');

10
3

CHARACTER_LENGTH(expr) 

:字符串长度

函数说明:返回字符串的长度

示例:


> SELECT CHARACTER_LENGTH('Spark SQL ');

10

4、字符串查找、截取


函数

描述

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-表示正则表达式或者是字符串。
  • 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博客


函数

描述

1regexp_extract(str, regexp, idx)

函数说明:提取与正则表达式匹配的内容,将字符串按照指定规则拆分为组后,返回指定组的字符串。

str:是待拆分的字符串

regexp:是常量或正则表达式

idx:是数组里要的下标值

示例
> SELECT regexp_extract('100-200', '(\\d+)-(\\d+)', 1);
 100
> SELECT REGEXP_EXTRACT('8d99d8', '8d(\\d+)d8', 1);
99
2

regexp_replace(strA,strB,strC )

函数说明:返回替换匹配正则表达式的内容

将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数

示例
> SELECT regexp_replace('100-200', '(\\d+)', 'num');
 num-num

3

replace(str, search, replace)

函数说明:替换字符串的所有实例

示例
> SELECT replace('ABCabc', 'abc', 'DEF');
 ABCDEF
4translate(input, from, to)

函数说明:替换字符串中的值。通过将[from]中的字符串中的字符替换为[to]中的字符串中的相应字符来翻译[input]字符串。

示例
> SELECT translate('AaBbCc', 'abc', '123'); 
A1B2C3
> SELECT translate("2.10.100.103.3","2.10","");
33

6、字符串补位


函数

描述

1initcap(str)函数说明:将字符串更改为标题大小写
2lcase(str), lower(str)函数说明:将字符串更改为全部小写
3lpad(str)函数说明:垫住字符串的左侧
4rpad(str)函数说明:将字符串的右侧填充
5rtrim(str)函数说明:删除尾随空格
6trim(str)函数说明:删除前导字符和尾随字符
7ucase(str), upper(str)函数说明:将字符串更改为全部大写


  • 无标签