---
url: /v6.2/calculation-function-string.md
---
# 文本函数

## concat

| 语法         | concat(S1,S2,S3...)       |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数；参数个数是可变的，至少需要1个参数 |
| 返回值类型   | 字符串                    |
| 描述         | 将多个参数作为文本拼接到一起。例如：concat('abc', 123)，返回字符串类型：'abc123' |
| 例子         | concat('abc', 123, 'hello')，返回：'abc123hello'  concat('abc', 123)，返回：'abc123' |

## initcap

| 语法         | initcap(S)                |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数 |
| 返回值类型   | 字符串                    |
| 描述         | 对指定字符串做格式化操作，将字符串中的每个单词首字母变为大写，其他字母变为小写 |
| 例子         | initcap('hello world')，返回：'Hello World' |
| 不支持的数据源 | tidb、mongodb             |

## length

| 语法         | length(S)                 |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数 |
| 返回值类型   | 数字                    |
| 描述         | 计算字符串的长度 |
| 例子         | length('hello')，返回：5 |

## like

| 语法         | like(S,LITERAL_PATTERN)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式，可选类型：字符串 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串 |
| 例子         | like('hello world', 'world')，返回：TRUE |

## like_all

| 语法         | like_all(S,LITERAL_PATTERN_LIST)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式列表，可选类型：字符串列表 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串列表中的所有项 |
| 例子         | like_all('hello world', \['world','ello'])，返回：TRUE |

## like_any

| 语法         | like_any(S,LITERAL_PATTERN_LIST)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式列表，可选类型：字符串列表 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串列表中的任意一项 |
| 例子         | like_any('hello world', \['world','abcd'])，返回：TRUE |

## like_ci

| 语法         | like_ci(S,LITERAL_PATTERN)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式，可选类型：字符串 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串，不区分大小写 |
| 例子         | like_ci('hello world', 'World')，返回：TRUE |

## like_ci_all

| 语法         | like_ci_all(S,LITERAL_PATTERN_LIST)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式列表，可选类型：字符串列表 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串列表中的所有项，不区分大小写 |
| 例子         | like_ci_all('hello world', \['World','ello'])，返回：TRUE |

## like_ci_any

| 语法         | like_ci_any(S,LITERAL_PATTERN_LIST)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数，可选类型：STRING；2. 指定模式列表，可选类型：字符串列表 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段包含特定字符串列表中的任意一项，不区分大小写 |
| 例子         | like_ci_any('hello world', \['World','abcd'])，返回：TRUE |

## lower

| 语法         | lower(S)                  |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数 |
| 返回值类型   | 字符串                    |
| 描述         | 将指定字符串的所有字符修改为小写 |
| 例子         | lower('HELLO')，返回：'hello' |

## ltrim

| 语法         | ltrim(s1, s2)             |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 指定要删除的字符串  |
| 返回值类型   | 字符串 |
| 描述         | 从s1字符串起始位置查找与s2字符串相同的内容，当内容与s2字符串不符时停止查找，并删除查找到的内容。示例：ltrim('abcbabca','ab')，返回结果为 cbabca |
| 例子         | ltrim('abcbabca','ab')，返回：'cbabca' |

## position

| 语法         | position(S,PATTERN)       |
|--------------|---------------------------|
| 参数说明     | 1. 要搜索的字符串；2. 子字符串 |
| 返回值类型   | 数字                    |
| 描述         | 获取子字符串在指定字符串中第一次出现的位置 |
| 例子         | position('hello world', 'world')，返回：7 |

## regexp_extract

| 语法         | regexp_extract(s, regexp, index) |
|--------------|----------------------------------|
| 参数说明     | 1. 字符串类型参数；2. 正则表达式，可选类型：字符串；3. 需要的字符串索引，可选类型：数字 |
| 返回值类型   | 字符串 |
| 描述         | 将字符串s按照正则表达式regexp的规则拆分，返回index指定的字符 |
| 例子         | regexp_extract('hello123world', '(\d+)', 1)，返回：'123' |
| 不支持的数据源 | 无（支持的数据源:Athena、Doris、Postgresql、Spark、Hive、Hologres、Impala、Presto） |

## regexp_match

| 语法         | regexp_match(s, regexp)   |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 正则表达式，可选类型：字符串 |
| 返回值类型   | 布尔 |
| 描述         | 判断字符串s是否匹配正则表达式regexp模式。匹配成功返回TRUE，匹配失败返回FALSE |
| 例子         | regexp_match('hello123', '\d+')，返回：TRUE |

## regexp_replace

| 语法         | regexp_replace(s, regexp, replacement) |
|--------------|----------------------------------------|
| 参数说明     | 1. 字符串类型参数；2. 正则表达式，可选类型：字符串；3. 新的字符串 |
| 返回值类型   | 字符串 类型 |
| 描述         | 将字符串s中匹配正则表达式regexp的字符替换为指定字符串replacement |
| 例子         | regexp_replace('hello123world', '\d+', '')，返回：'helloworld' |

## replace

| 语法         | replace(s,s1,s2)          |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 原来的字符串；3. 新的字符串 |
| 返回值类型   | 字符串                    |
| 描述         | 替换字符串。用法 replace(s, s1, s2)，s2替换s中出现的所有s1 |
| 例子         | replace('hello world', 'world', 'there')，返回：'hello there' |

## rtrim

| 语法         | rtrim(s1, s2)             |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 指定要删除的字符串  |
| 返回值类型   | 字符串 |
| 描述         | 从s1字符串结束位置开始往前查找与s2字符串相同的内容，当内容与s2字符串不符时停止查找，并删除查找到的内容。示例：rtrim('abadcdabab','ab')返回值为 abadcd |
| 例子         | rtrim('abadcdabab','ab')，返回：'abadcd' |

## split

| 语法         | split(s, delimiter, n)    |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 分隔符，可选类型：字符串；3. 需要的字符串索引，可选类型：数字 |
| 返回值类型   | 字符串 |
| 描述         | 将字符串s按分隔符delimiter切分，并返回切分后的第n个（n从1开始）字符串。如 split('abc,abc,abcdef',',',3)，返回字符串是 abcdef |
| 例子         | split('abc,abc,abcdef',',',3)，返回：'abcdef' |

## to_string

| 语法         | to_string(ARG)            |
|--------------|---------------------------|
| 参数说明     | 任意类型的参数 |
| 返回值类型   | 字符串                    |
| 描述         | 把输入的字段或者值转换成字符串 |
| 例子         | to_string(123)，返回：'123' |

## trim

| 语法         | trim(S)                   |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数 |
| 返回值类型   | 字符串                    |
| 描述         | 去掉字符串首尾的空格 |
| 例子         | trim('  hello  ')，返回：'hello' |

## upper

| 语法         | upper(S)                  |
|--------------|---------------------------|
| 参数说明     | 字符串类型参数 |
| 返回值类型   | 字符串                    |
| 描述         | 将指定字符串的所有字符修改为大写 |
| 例子         | upper('hello')，返回：'HELLO' |

## unlike

| 语法         | unlike(S,LITERAL_PATTERN) |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 指定模式，可选类型：字符串 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段不包含特定字符串 |
| 例子         | unlike('hello world', 'test')，返回：TRUE |

## unlike_ci

| 语法         | unlike_ci(S,LITERAL_PATTERN) |
|--------------|---------------------------|
| 参数说明     | 1. 字符串类型参数；2. 指定模式，可选类型：字符串 |
| 返回值类型   | 布尔                      |
| 描述         | 指定字段不包含特定字符串，不区分大小写 |
| 例子         | unlike_ci('hello world', 'HE')，返回：FALSE |
