tencent cloud

流计算 Oceanus

动态与公告
产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
计费模式
退费说明
调整配置费用说明
快速入门
从零开始上手
创建独享集群
创建 SQL 作业
创建 JAR 作业
创建 ETL 作业
创建 Python 作业
操作指南
作业管理
作业开发
作业监控
作业日志
事件与诊断
元数据管理
快照管理
作业调优
依赖管理
集群管理
权限管理
SQL 开发指南
开发指南概述
术语和数据类型
DDL 数据定义语句
DML 数据操作语句
MySQL CDC 多 Source 复用
上下游开发指南
SET 控制语句
运算符和内置函数
标识符与保留字
Python 开发指南
ETL 开发指南
概述
ETL 作业术语表
上下游开发指南
常见问题
联系我们

字符串操作函数

PDF
聚焦模式
字号
最后更新时间: 2023-11-08 14:17:49

函数

函数名
功能描述
string1 || string2
连接两个字符串,返回两个字符串拼接后的结果,等同于 CONCAT(string1, string2)。
CHAR_LENGTH(string)
返回字符串的长度。
CHARACTER_LENGTH(string)
与 CHAR_LENGTH(string) 相同。
UPPER(string)
返回 string 的全大写字母形式。
LOWER(string)
返回 string 的全小写字母形式。
POSITION(string1 IN string2)
获取 string1 在 string2 中第一次出现的位置(位置从1开始计数)。当 string1 在 string2 中找不到时,返回0。
TRIM({BOTH |LEADING |TRAILING }string1 FROM string2 )
从 string2 中除去字符串首尾/首位/末尾的 string1。默认情况下,首尾的空格都被删除。
LTRIM(string)
去掉 string 字符串最左边的所有空格。例如 LTRIM(' Hello') 会返回 'Hello'。
RTRIM(string)
去掉 string 字符串最右边的所有空格。例如 RTRIM(' World ') 会返回 ' World'。
REPEAT(string, integer)
将 string 字符串重复 integer 次。例如 REPEAT('Meow', 3) 会返回 'MeowMeowMeow'。
REGEXP_REPLACE(string1, string2, string3)
对 string1 字符串以 string2 表示的正则表达式进行替换,替换内容是 string3。例如 REGEXP_REPLACE('banana', 'a|n', 'A') 返回 'bAAAAA'。
REPLACE(string1, string2, string3)
将 string1 字符串中所有的 string2 替换为 string3。例如 REPLACE('banana', 'a', 'A') 返回 'bAnAnA'。
OVERLAY(string1 PLACING string2 FROM start_pos [ FOR length ])
将 string1 从第 start_pos 位(start_pos 从1开始计数)开始的子串替换为 string2。可以指定替换的长度。
SUBSTRING(string from pos [ FOR length])
获取从 pos 位开始的子串,默认行为是直到源字符串的最后,可以使用 FOR 来指定子串的长度。其中字符串起始 pos 从1开始计数,而不是0。
REGEXP_EXTRACT(string1, string2[, integer])
从 string1 中提取正则分组,正则表达式为 string2,第一个括号为第一组,以此类推。可通过第三个参数 integer 来指定所需的分组号(从1开始)。如果不指定分组号或者分组号为0,则表示返回整个正则表达式匹配到的字符串。例如,REGEXP_EXTRACT('foothebar', 'foo(.*?)(bar)', 2) 返回 'bar'。
INITCAP(string)
将 string 中的单词,转为以大写字母开头,其他是小写字母(首字母大写)的形式。例如 INITCAP('i have a dream') 返回 'I Have A Dream'。
CONCAT(string1, string2 …)
连接多个字符串。若任意字符串为 NULL,则结果为 NULL。
CONCAT_WS(separator, string1, string2, …)
使用指定的分隔符 separator 连接多个字符串。如果 separator 为 NULL,则结果为 NULL。如果某个字符串为 NULL,则跳过它;但是不会跳过空字符串。例如 CONCAT_WS('~', 'AA','BB', '', 'CC') 会返回 AA~BB~~CC
LPAD(text, length, padding)
使用 padding 指定的字符串从左侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。
RPAD(text, length, padding)
使用 padding 指定的字符串从右侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。
FROM_BASE64(string)
将 Base64 编码的 string 字符串解码为字符串。如果 string 为 NULL,则返回 NULL。
TO_BASE64(string)
将 string 表示的字符串编码为 Base64 字符串。
ASCII(string)
返回 string 字符串中第一个字符的 ASCII 码。如果 string 为 NULL,则返回 NULL。例如 ASCII('an apple') 返回97,因为首字母 'a' 的 ASCII 编码是97。
CHR(integer)
返回编码为 integer 的 ASCII 字符。例如 CHR(97) 返回 'a'。
ENCODE(string, charset)
将 string 字符串转码为 charset 指定的字符集编码的 BINARY 类型,例如 ENCODE(hello, 'GBK')。
DECODE(binary, charset)
将 binary 表示的 BINARY 类型以 charset 指定的字符集解码,例如 DECODE(binary_field, 'UTF-16LE')。
INSTR(string1, string2)
返回 string2 在 string1 字符串中首次出现的位置。如果任意参数为 NULL,结果为 NULL。
LEFT(string, n)
返回 string 从左起前 n 个字符。如果 n 为负数,则返回空字符串。如果任意参数为 NULL,结果为 NULL。
RIGHT(string, n)
返回 string 从右起后 n 个字符。如果 n 为负数,则返回空字符串。如果任意参数为 NULL,结果为 NULL。
LOCATE(string1, string2[, integer])
返回跳过 integer 个字符后,string1 在 string2 中首次出现的位置(参数顺序与 INSTR 函数相反)。如果未找到,则返回0。如果任意参数为 NULL,结果为 NULL。
REGEXP(string, regex)
如果 regex 表示的正则表达式可以匹配 string 中的字符串的任意子串,那么返回 TRUE,否则返回 FALSE。如果任意参数为 NULL,结果为 NULL。
REVERSE(string)
反转 string 字符串。如果任意参数为 NULL,结果为 NULL。
SPLIT_INDEX(string, separator, index)
将 string 表示的字符串以 separator 指定的分隔符拆分,并获取第 index 项,返回值为字符串 VARCHAR 类型。其中 index 从0开始计数
SPLIT(string, separator)
将 string 表示的字符串以 separator 指定的分隔符拆分,并返回一个 Row 类型的对象。
STR_TO_MAP(string1[, string2, string3])
将 string1 字符串用 string2 提供的数据分隔符(默认为半角逗号 ,)和 string3 提供的键值间分隔符(默认为半角等号 =)进行拆分,结果为键值对 MAP<string, string> 类型。例如 STR_TO_MAP('k1=v1,k2=v2,k3=v3') 返回键值对(非字符串){'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}。
SUBSTR(string[, pos[, length]])
返回 string 字符串从 pos 位置开始,长度为 length 的子串。如果不提供 length,则默认到该字符串尾部。
EXPLODE(inputStr, separator)
将某个字符串分割为一张有多行的临时表。这个函数属于 Table Function,需要使用 LATERAL TABLE ( ) 关键字来引用此动态生成的临时表并作为 JOIN 条件的右表。
GET_ROW_ARITY(row)
获取某个 Row 类型对象 row 的列数。
GET_ROW_FIELD_STR(row, index)
获取某个 Row 类型对象 row 的第 index 列的值,index 从0开始计数。返回值为字符串 VARCHAR 类型。
GET_JSON_OBJECT(json_str, path_str)
按 path_str 指定的 JSONPath 路径,获取某个 JSON 字符串 json_str 中的元素,可以任意嵌套。支持的 JSONPath 语法:$表示根对象,.表示子元素,[]表示数组索引,*为数组索引 [] 的通配符。
IS_ALPHA(content)
判断字符串是否只包含字母。
IS_DIGITS(content)
判断字符串是否只包含数字。
MD5(string)
返回字符串的 MD5 值。
POSITION(string1 IN string2)
返回目标字符串 x 在被查询字符串y里第一次出现的位置。如果目标字符串 x 在被查询字符串 y 中不存在,返回值为0。
SHA1
返回字符串 expr 的 SHA1 值。
SHA256
返回字符串 expr 的 SHA256 值。

示例

||

功能描述:连接两个字符串,返回两个字符串拼接后的结果,等同于 CONCAT(string1, string2) 语法:string1 || string2 示例测试语句:SELECT string1 || string2 FROM Test ; 测试数据和结果:
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试结果(VARCHAR)
Oce
anus
Oceanus

CHAR_LENGTH

功能描述:返回字符串的长度。 语法:CHAR_LENGTH( string) 示例测试语句:SELECT CHAR_LENGTH(var1) AS length FROM Test; 测试数据和结果:
测试数据(VARCHAR var1)
测试结果(INT length)
Oceanus
7

CHARACTER_LENGTH

功能描述:与 CHAR_LENGTH(string) 相同。 语法:CHARACTER_LENGTH(string) 示例测试语句:SELECT CHAR_LENGTH(var1) AS length FROM Test; 测试数据和结果:
测试数据(VARCHAR var1)
测试结果(INT length)
Oceanus
7

LOWER

功能描述:返回小写字符的字符串。 语法:LOWER(string) 示例测试语句:SELECT LOWER(var1) AS lower FROM Test; 测试数据和结果:
测试数据(VARCHAR var1)
测试结果(VARCHAR lower)
OCeanus
oceanus

UPPER

功能描述:返回大写字符的字符串。 语法:UPPER( string) 示例测试语句:SELECT UPPER(var1) AS upper FROM Test; 测试数据和结果:
测试数据(VARCHAR var1)
测试结果(VARCHAR upper)
OCeanus
OCEANUS

TRIM

功能描述:从 string2 中除去字符串首尾/首位/末尾的 string1。默认情况下,首尾的空格都被删除。 语法:TRIM({BOTH | LEADING | TRAILING } string1 FROM string2 ) 示例测试语句:SELECT TRIM(BOTH string1 FROM string2) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试结果(VARCHAR res)
a
aoceanusa
oceanus

CONCAT

功能描述:拼接两个或多个字符串值从而组成一个新的字符串。如果任一参数为 NULL 时,则跳过该参数。 语法:CONCAT( string1, string2 …) 示例测试语句:SELECT CONCAT('123', '456', 'abc', 'def') AS res FROM Test; 测试数据和结果:'123456abcdef'
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试数据(VARCHAR string3)
测试数据(VARCHAR string4)
测试结果(VARCHAR res)
123
456
abc
def
123456abcdef

CONCAT_WS

功能描述:使用指定的分隔符 separator 连接多个字符串。如果 separator 为 NULL,则结果为 NULL。如果某个字符串为 NULL,则跳过它。但是不会跳过空字符串。 语法:CONCAT_WS(separator,string1,string2, …) 示例测试语句:SELECT CONCAT_WS(separator, string1,string2, string3) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR separator)
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试数据(VARCHAR string3)
测试结果(VARCHAR res)
-
AA
BB
CC
AA-BB-CC

INITCAP

功能描述:将 string 中的单词,转为以大写字母开头,其他是小写字母(首字母大写)的形式。 语法:INITCAP(string) 示例测试语句:SELECT INITCAP(var1) AS str FROM Test; 数据和结果:
测试数据(VARCHAR var1)
测试结果(VARCHAR str)
i have a dream
I Have A Dream

IS_ALPHA

功能描述:判断字符串是否只包含字母。 语法:IS_ALPHA(content) 示例测试语句:SELECT IS_ALPHA(content) AS result FROM Test; 测试数据和结果:
测试数据(VARCHAR content)
测试结果(BOOLEAN result)
Oceanus
true
oceanus123
false
''
false
null
false

IS_DIGITS

功能描述:判断字符串是否只包含数字。 语法:IS_DIGITS(content) 示例测试语句:SELECT IS_DIGITS(content) AS result FROM Test; 测试数据和结果:
测试数据(VARCHAR content)
测试结果(BOOLEAN case_result)
58.0
true
58
true
58pl
false
''
false
null
false

LPAD

功能描述:使用 padding 指定的字符串从左侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。 语法:LPAD(text , length , padding) 示例测试语句:SELECT LPAD(test, length, padding) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR text)
测试数据(INT length)
测试数据(VARCHAR padding)
测试结果(VARCHAR res)
oceanus
3
hello
hel
oceanus
-1
hello
''
oceanus
12
hello
hellooceanus

RPAD

功能描述:使用 padding 指定的字符串从右侧填充 text 字符串到指定长度 length。如果 text 比 length 更长,则会截断到 length 的长度。 语法:RPAD(text , length , padding) 示例测试语句:SELECT RPAD(text, length, padding) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR text)
测试数据(INT length)
测试数据(VARCHAR padding)
测试结果(VARCHAR res)
oceanus
3
hello
oce
oceanus
-1
hello
''
oceanus
12
hello
oceanushello

MD5

功能描述:返回字符串的 MD5 值。 语法:MD5(string) 示例测试语句:SELECT MD5(content) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR content)
测试结果(VARCHAR res)
abc
900150983cd24fb0d6963f7d28e17f72

OVERLAY

功能描述:将 string1 从第 start_pos 位(start_pos 从1开始计数)开始的子串替换为 string2。可以指定替换的长度。 语法:SELECT OVERLAY(string1 PLACING string2 FROM start_pos [ FOR length ]) 示例测试语句:SELECT OVERLAY(string1 PLACING string2 FROM start_pos FOR length) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试数据(INT start_pos)
测试数据(INT length)
测试结果(VARCHAR res)
oceanus
abc
2
2
oabcanus

POSITION

功能描述:返回目标字符串 x 在被查询字符串 y 里第一次出现的位置。如果目标字符串 x 在被查询字符串 y 中不存在,返回值为0。 语法:POSITION(string1 IN string2) 示例测试语句: SELECT POSITION(string1 IN string2) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试结果(VARCHAR res)
nu
oceanus
5

GET_JSON_OBJECT(json_str, path_str)

功能描述:按 path_str 指定的 JSONPath 路径,获取某个 JSON 字符串 json_str 中的元素,可以任意嵌套。支持的 JSONPath 语法:$表示根对象,.表示子元素,[]表示数组索引,*为数组索引 [] 的通配符。 语法:GET_JSON_OBJECT(json_str, path_str) 示例测试语句:SELECT GET_JSON_OBJECT(json_str, path_str) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR json_str)
{"school": {"student":[{"num":8,"type":"A"},{"num":9,"type":"B"}],"teacher":{"num":200,"type":"A"} },"headmaster":"mark" }
测试数据(VARCHAR path_str)
测试结果(VARCHAR res)
$.school
{\\"student\\":[{\\"num\\":8,\\"type\\":\\"A\\"},{\\"num\\":9,\\"type\\":\\"B\\"}],
\\"teacher\\":{\\"num\\":200,\\"type\\":\\"A\\"}}
$.school.student[1]
{\\"num\\":9,\\"type\\":\\"B\\"}
$.school.teacher
{\\"num\\":200,\\"type\\":\\"A\\"}
$.headmaster
mark

REPLACE

功能描述:将 string1 字符串中所有的 string2 替换为 string3。 语法:REPLACE(string1, string2, string3) 示例测试语句:SELECT REPLACE( string1, string2, string3) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR string1)
测试数据(VARCHAR string2)
测试数据(VARCHAR string3)
测试结果(VARCHAR res)
banana
a
A
bAnAnA

SHA1

功能描述:返回字符串 expr 的 SHA1 值。 语法:SHA1(expr) 示例测试语句:SELECT SHA1(expr) AS res FROM Test; 测试数据和结果:
测试数据(VARCHAR expr)
测试结果(VARCHAR res)
abc
a9993e364706816aba3e25717850c26c9cd0d89d

SHA256

功能描述:返回字符串 expr 的 SHA256 值。 语法:SHA256(expr) 示例测试语句:SELECT SHA256(expr) FROM Test; 测试数据和结果:
测试数据(VARCHAR expr)
测试结果(VARCHAR res)
abc
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈