字符串函数和运算符

本页说明 Polars SQL 中可用的字符串运算符和函数。

字符串运算符

|| 运算符执行拼接。NULL 操作数会按空字符串处理。

字符串函数

备注

这些函数假定输入字符串包含有效的 UTF-8 编码 Unicode 码点。函数不会显式检查 UTF-8 是否有效;遇到无效 UTF-8 时,可能返回不正确的结果。

此外,这些函数按 Unicode 码点操作,而不是按用户可见的“字符”或“字素簇”操作。有些语言会将多个码点组合成用户感知的单个“字符”,即该语言书写系统的基本单位;但这些函数会把每个码点视为独立单位。

lower()upper() 函数不会执行某些语言所需的区域敏感、上下文敏感或一对多映射。具体来说,对于立陶宛语、土耳其语和阿塞拜疆语,这会返回不正确的结果。

concat(string1, ..., stringN) -> varchar()

返回 string1string2...stringN 的拼接结果。该函数提供与 SQL 标准拼接运算符(||)相同的功能。NULL 参数会按空字符串处理。

length(string) -> bigint()

返回 string 的 Unicode 码点长度。

char_length(string) -> bigint()

length() 的别名。

character_length(string) -> bigint()

length() 的别名。

lower(string) -> varchar()

string 转换为小写。

ltrim(string) -> varchar()

移除 string 开头的 SQL 空白字符。

replace(string, search, replace) -> varchar()

string 中所有 search 替换为 replace

如果 search 为空字符串,则在每个字符前以及 string 末尾插入 replace

rtrim(string) -> varchar()

移除 string 末尾的 SQL 空白字符。

substr(string, start) -> varchar()

返回 string 中从起始位置 start 开始的剩余部分。位置从 1 开始。当前支持范围为正数位置。

substr(string, start, length) -> varchar()

string 的起始位置 start 开始返回长度为 length 的子串。位置从 1 开始。当前支持范围为正数位置。

mid(string, start, length) -> varchar()

substr() 的别名。

substring(string, start) -> varchar()

substr() 的别名。

substring(string, start, length) -> varchar()

substr() 的别名。

char(codepoint) -> varchar()

为有效的 Unicode 码点返回一个单字符字符串。

beginwith(string, prefix) -> boolean()

返回 string 是否以 prefix 开头。

startwith(string, prefix) -> boolean()

beginwith() 的别名。

endwith(string, suffix) -> boolean()

返回 string 是否以 suffix 结尾。

find(substring, string) -> bigint()

返回 substringstring 中从 1 开始计数的位置;如果未找到该子串,则返回 0

find(substring, string, start) -> bigint()

从 1 开始计数的位置 start 起,返回 substringstring 中从 1 开始计数的位置;如果未找到该子串,则返回 0

trim(string) -> varchar()

移除 string 开头和末尾的 SQL 空白字符。

可识别的空白字符:

编码

说明

编码

说明

9

TAB(水平制表符)

U+1680

欧甘空格标记

10

LF(NL 换行,新行)

U+2000

En Quad 空格

11

VT(垂直制表符)

U+2001

Em Quad 空格

12

FF(NP 换页,新页)

U+2002

En 空格

13

CR(回车)

U+2003

Em 空格

28

FS(文件分隔符)

U+2004

三分之一 Em 空格

29

GS(组分隔符)

U+2005

四分之一 Em 空格

30

RS(记录分隔符)

U+2006

四分之一 Em 空格

31

US(单元分隔符)

U+2008

标点空格

32

空格

U+2009

细空格

_

_

U+200a

发丝空格

_

_

U+200a

发丝空格

_

_

U+2028

行分隔符

_

_

U+2029

段落分隔符

_

_

U+205f

中等数学空格

_

_

U+3000

表意文字空格

upper(string) -> varchar()

string 转换为大写。