ASCII
函数语法:
ASCII(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:返回 str 的第一个字符的数值。
返回类型:integer。
示例:
> SELECT ascii('222');50
BASE64
函数语法:
-- SparkSQLBASE64(<str> string|binary)-- PrestoBASE64(<str> binary)
支持引擎:SparkSQL、Presto。
使用说明:将参数转换为 base64 字符串。
返回类型:string。
示例:
> SELECT base64('tencent');dGVuY2VudA==
BIT_LENGTH
函数语法:
BIT_LENGTH(<expr> string|binary)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串数据的位长度或二进制数据的位数。
返回类型:integer。
示例:
> select bit_length('tencent');56> select bit_length(binary('tencent'));56
CHAR
函数语法:
CHAR(<expr> integer)
支持引擎:SparkSQL、Presto。
使用说明:返回 expr 的 ASCII 字符。如果 expr 大于256,则 expr=expr%256。
返回类型:string。
示例:
> SELECT char(65);A
CHR
函数语法:
CHR(<expr> integer)
支持引擎:SparkSQL。
使用说明:返回 expr 的 ASCII 字符。如果 expr 大于256,则 expr=expr%256。
返回类型:string。
示例:
> SELECT chr(65);A
CHAR_LENGTH
函数语法:
CHAR_LENGTH(<expr> string|binary)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串数据的字符长度或二进制数据的字节数。字符串数据的长度包括末尾空格。二进制数据的长度包括二进制零。
返回类型:integer。
示例:
> select char_length(binary('tencent'));7> select char_length('tencent');7
CHARACTER_LENGTH
函数语法:
CHARACTER_LENGTH(<expr> string|binary)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串数据的字符长度或二进制数据的字节数。字符串数据的长度包括末尾空格。二进制数据的长度包括二进制零。
返回类型:integer。
示例:
> select character_length(binary('tencent')); > select character_length('tencent'); 7
CONCAT_WS
函数语法:
CONCAT_WS(<sep> string[, <s> string|array<string>}]+)
支持引擎:SparkSQL、Presto。
使用说明:返回由 sep 分隔的字符串。
返回类型:string。
示例:
> SELECT concat_ws(' ', 'tencent', 'dlc');tencent dlc
DECODE
函数语法:
DECODE(<expr> binary|string, <charset>string)
支持引擎:SparkSQL、Presto。
使用说明:使用第二个参数字符集解码第一个参数。
返回类型:string。
示例:
> SELECT decode(encode('abc', 'utf-8'), 'utf-8');abc
ELT
函数语法:
ELT(<n> integer, <s1> string, <s2> string, ...)
支持引擎:SparkSQL、Presto。
使用说明:返回第 n 个元素。
返回类型:string。
示例:
> SELECT elt(1, 'scala', 'java');scala
ENCODE
函数语法:
ENCODE(<expr> binary|string, <charset> string)
支持引擎:SparkSQL、Presto。
使用说明:使用第二个参数字符集对第一个参数进行编码。
返回类型:string。
示例:
> SELECT encode('abc', 'utf-8');abc> SELECT encode(x'616263', 'utf-8');abc
FIND_IN_SET
函数语法:
FIND_IN_SET(<str> string, <str_array> string)
支持引擎:SparkSQL、Presto。
使用说明:返回逗号分隔列表 atr_array 中给定字符串 str 的索引(从1开始计数)。如果未找到字符串或 str 包含逗号,则返回0。
返回类型:integer。
示例:
> SELECT find_in_set('ab','abc,b,ab,c,def');3
FORMAT_NUMBER
函数语法:
FORMAT_NUMBER(<expr1> integer|double|decimal, <expr2> string|integer)
支持引擎:SparkSQL、Presto。
使用说明:将 expr1 的格式设置为'#,####,####.##',四舍五入到 expr2 小数位。如果 expr2 为0,则结果没有小数点或小数部分。
返回类型:string。
示例:
> SELECT format_number(12332.123456, 4);12,332.1235> SELECT format_number(12332.123456, '##################.###');12332.123
FORMAT_STRING
函数语法:
FORMAT_STRING(<str> string, obj <T>, ...)
支持引擎:SparkSQL、Presto。
使用说明:返回 printf 样式格式字符串中的格式化字符串。
返回类型:string。
示例:
> SELECT format_string("Hello World %d %s", 100, "days");Hello World 100 days
INITCAP
函数语法:
INITCAP(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:每个单词的第一个字母都改为大写,所有其他字母均为小写。
返回类型:string。
示例:
> SELECT initcap('sPark sql');Spark Sql
INSTR
函数语法:
INSTR(<str> string, <substr> string)
支持引擎:SparkSQL、Presto。
使用说明:返回 str 中第一次出现 substr 的索引(从1开始计数)。
返回类型:integer。
示例:
> SELECT instr('SparkSQL', 'SQL');6
LCASE
函数语法:
LCASE(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:str 改为小写。
返回类型:string。
示例:
> SELECT lcase('SparkSQL');sparksql
LENGTH
函数语法:
LENGTH(<expr> string|binary)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串数据的字符长度或二进制数据的字节数。字符串数据的长度包括最后的空格。二进制数据的长度包括二进制零。
返回类型:integer。
示例:
> SELECT length('Spark SQL ');10
LEVENSHTEIN
函数语法:
LEVENSHTEIN(<s1> string, <s2> string)
支持引擎:SparkSQL、Presto。
使用说明:返回两个给定字符串之间的 Levenshtein 距离。
返回类型:integer。
示例:
> SELECT levenshtein('kitten', 'sitting');3
LIKE
函数语法:
LIKE(<s1> str, <s2> pattern)<str> like <pattern>[ ESCAPE <escape>]
支持引擎:SparkSQL、Presto。
使用说明:如果 str 匹配带转义 escape 的 pattern,则返回 true;如果任何参数为 null,则返回 null;否则返回 false。
返回类型:boolean。
示例:
> SELECT like('Spark', '_park');true> SET spark.sql.parser.escapedStringLiterals=true;spark.sql.parser.escapedStringLiterals true> SELECT '%SystemDrive%\\Users\\John' like '\\%SystemDrive\\%\\\\Users%';true> SET spark.sql.parser.escapedStringLiterals=false;spark.sql.parser.escapedStringLiterals false> SELECT '%SystemDrive%\\\\Users\\\\John' like '\\%SystemDrive\\%\\\\\\\\Users%';false> SELECT '%SystemDrive%/Users/John' like '/%SystemDrive/%//Users%' ESCAPE '/';true
LOWER
函数语法:
LOWER(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:返回所有字符都更改为小写的 str。
返回类型:string。
示例:
> SELECT lower('TENCENT');tencent
LOCATE
函数语法:
LOCATE(<substr> string, <str> string[, <pos> integer])
支持引擎:SparkSQL、Presto。
使用说明:返回在 str 中第 pos 位之后中第一次出现 substr 的位置。
返回类型:integer。
示例:
> SELECT locate('bar', 'foobarbar');4> SELECT locate('bar', 'foobarbar', 5);7
OCTET_LENGTH
函数语法:
OCTET_LENGTH(<expr> string|binary)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串数据的字节长度或二进制数据的字节数。
返回类型:integer。
示例:
> SELECT octet_length('Spark SQL');9
LPAD
函数语法:
LPAD(<str> string, <len> integer[, <pad> string])
支持引擎:SparkSQL、Presto。
使用说明:返回 str,在左填充 pad 到长度 len。如果 str 长于 len,则返回值缩短为 len 个字符。如果未指定 pad,str 将用空格字符填充。
返回类型:string。
示例:
> SELECT lpad('hi', 5, '??');???hi> SELECT lpad('hi', 1, '??');h> SELECT lpad('hi', 5);hi
LTRIM
函数语法:
LTRIM(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:从 str 中删除前导空格字符。
返回类型:string。
示例:
> SELECT ltrim(' SparkSQL ');SparkSQL
PARSE_URL
函数语法:
PARSE_URL(<url> string, <path> string[, <key> string])
支持引擎:SparkSQL、Presto。
使用说明:从 url 中提取 path。
返回类型:string。
示例:
> 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
POSITION
函数语法:
POSITION(<substr> string, <str> string[, <pos> integer])
支持引擎:SparkSQL、Presto。
使用说明:返回在 str 中第 pos 位之后中第一次出现 substr 的位置。
返回类型:integer。
示例:
> SELECT position('bar', 'foobarbar');4> SELECT position('bar', 'foobarbar', 5);7> SELECT POSITION('bar' IN 'foobarbar');4
PRINTF
函数语法:
PRINTF(<str> string, obj <T>, ...)
支持引擎:SparkSQL、Presto。
使用说明:返回 printf 样式格式字符串中的格式化字符串。
返回类型:string。
示例:
> SELECT printf("Hello World %d %s", 100, "days");Hello World 100 days
REPEAT
函数语法:
REPEAT(<str> string, <n> integer)
支持引擎:SparkSQL、Presto。
使用说明:返回将给定字符串重复 n 次的字符串。
返回类型:string。
示例:
> SELECT repeat('123', 2);123123
REPLACE
函数语法:
REPLACE(<str> string, <search> string[, <replace> string])
支持引擎:SparkSQL、Presto。
使用说明:用 replace 替换 str 中所有出现的 search。
返回类型:string。
示例:
> SELECT replace('ABCabc', 'abc', 'DEF');ABCDEF
OVERLAY
函数语法:
OVERLAY(<input> string, <replace> string, <pos> integer[, <len> integer])
支持引擎:SparkSQL。
使用说明:将 input 替换为从 pos 开始、长度为 len 的 replace。
返回类型:string。
示例:
> SELECT overlay('Spark SQL' PLACING '_' FROM 6);Spark_SQL> SELECT overlay('Spark SQL' PLACING 'CORE' FROM 7);Spark CORE> SELECT overlay('Spark SQL' PLACING 'ANSI ' FROM 7 FOR 0);Spark ANSI SQL> SELECT overlay('Spark SQL' PLACING 'tructured' FROM 2 FOR 4);Structured SQL> SELECT overlay(encode('Spark SQL', 'utf-8') PLACING encode('_', 'utf-8') FROM 6);Spark_SQL> SELECT overlay(encode('Spark SQL', 'utf-8') PLACING encode('CORE', 'utf-8') FROM 7);Spark CORE> SELECT overlay(encode('Spark SQL', 'utf-8') PLACING encode('ANSI ', 'utf-8') FROM 7 FOR 0);Spark ANSI SQL> SELECT overlay(encode('Spark SQL', 'utf-8') PLACING encode('tructured', 'utf-8') FROM 2 FOR 4);Structured SQL
RPAD
函数语法:
RPAD(<str> string, <len> integer[, <pad> string])
支持引擎:SparkSQL、Presto。
使用说明:返回 str,在右填充 pa d到长度 len。如果 str 长于 len,则返回值缩短为 len 个字符。如果未指定 pad,str 将用空格字符填充。
返回类型:string。
示例:
> SELECT rpad('hi', 5, '??');hi???> SELECT rpad('hi', 1, '??');h> SELECT rpad('hi', 5);hi
RTRIM
函数语法:
RTRIM(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:从 str 中删除尾部空格字符。
返回类型:string。
示例:
> SELECT rtrim(' SparkSQL ');SparkSQL
SENTENCES
函数语法:
SENTENCES(<str> string[, <lang> string, <country> string])
支持引擎:SparkSQL、Presto。
使用说明:将 str 拆分为一个单词数组。
返回类型:array <string>。
示例:
> SELECT sentences('Hi there! Good morning.');[["Hi","there"],["Good","morning"]]
SOUNDEX
函数语法:
SOUNDEX(<str> string)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串的 Soundex 编码。
返回类型:string。
示例:
> SELECT soundex('Miller');M460
SPACE
函数语法:
SPACE(<n> integer)
支持引擎:SparkSQL、Presto。
使用说明:返回由 n 个空格组成的字符串。
返回类型:string。
示例:
> SELECT concat(space(2), '1');1
SPLIT
函数语法:
SPLIT(<str> string, <regex> string, <limit> integer)
支持引擎:SparkSQL、Presto。
使用说明:以与regex匹配的字符串作为分隔符,拆分str,并返回长度最大为limit的数组。
返回类型:array <string>。
示例:
> SELECT split('oneAtwoBthreeC', '[ABC]');["one","two","three",""]> SELECT split('oneAtwoBthreeC', '[ABC]', -1);["one","two","three",""]> SELECT split('oneAtwoBthreeC', '[ABC]', 2);["one","twoBthreeC"]
SUBSTRING
函数语法:
SUBSTRING(<str> string, <pos> integer[, <len> integer])SUBSTRING(<str> FROM <pos>[ FOR <len>])
支持引擎:SparkSQL、Presto。
使用说明:返回从 pos 开始且长度为 len 的 str 子字符串,或从 pos 开始且长度为 len 的字节数组切片。
返回类型:string。
示例:
> SELECT substring('Spark SQL', 5);k SQL> SELECT substring('Spark SQL', -3);SQL> SELECT substring('Spark SQL', 5, 1);k> SELECT substring('Spark SQL' FROM 5);k SQL> SELECT substring('Spark SQL' FROM -3);SQL> SELECT substring('Spark SQL' FROM 5 FOR 1);k
SUBSTR
函数语法:
SUBSTR(<str> string, <pos> integer[, <len> integer])SUBSTR(<str> FROM <pos>[ FOR <len>])
支持引擎:SparkSQL、Presto。
使用说明:返回从pos开始且长度为len的str子字符串,或从pos开始且长度为len的字节数组切片。
返回类型:string。
示例:
> 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
LEFT
函数语法:
LEFT(<str> string, <len> integer)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串str中最左边的len字符,如果len小于或等于0,则结果为空字符串。
返回类型:string。
示例:
> SELECT left('tencent', 3);ten
RIGHT
函数语法:
RIGHT(<str> string, <len> integer)
支持引擎:SparkSQL、Presto。
使用说明:返回字符串str中最左边的len字符,如果len小于或等于0,则结果为空字符串。
返回类型:string。
示例:
> SELECT left('tencent', 3);ten
SUBSTRING_INDEX
函数语法:
SUBSTRING_INDEX(<str> string, <delim> string, <count> integer)
支持引擎:SparkSQL、Presto。
使用说明:在delim的出现count之前,从str返回子字符串。如果count为正数,则返回最后定界符左侧的所有内容(从左侧计数)。如果计数为负数,则返回最终定界符右侧的所有内容(从右侧计数)。该函数在匹配delim时区分大小写。
返回类型:string。
示例:
> SELECT substring_index('cloud.tencent.com', '.', 2);cloud.tencent
TRANSLATE
函数语法:
TRANSLATE(<input> string, <from> string, <to> string)
支持引擎:SparkSQL。
使用说明:通过将from字符串中的字符替换为to字符串中的相应字符来转换input字符串。
返回类型:string。
示例:
> SELECT translate('AaBbCc', 'abc', '123');A1B2C3
TRIM
函数语法:
TRIM(<str> string)trim(BOTH FROM str)trim(LEADING FROM str)trim(TRAILING FROM str)trim(trimStr FROM str)trim(BOTH trimStr FROM str)trim(LEADING trimStr FROM str)trim(TRAILING trimStr FROM str)
支持引擎:SparkSQL、Presto。
使用说明:
trim(str) - 从str中删除前导和末尾空格字符。
trim(BOTH FROM str) :从str中删除前导和末尾空格字符。
trim(LEADING FROM str) :从str中删除前导空格字符。
trim(TRAILING FROM str) :从str中删除末尾空格字符。
trim(trimStr FROM str) :从str中删除开头和结尾的trimStr字符。
trim(BOTH trimStr FROM str) :从str中删除开头和结尾的trimStr字符。