↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / 字符串函数和操作符

FUNCTION字符串函数和操作符

normalize

将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。

Converts the string to the specified Unicode normalization form.

字符串函数和操作符 引入 13 现存至 20 devel 1 条签名 0 次签名变更

签名数
1 条
引入版本
13
状态
现存
签名变更
未变过
本版来源
英文原文

PostgreSQL 18.7 手册 · 9.4 字符串函数和操作符 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

说明

将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。
normalize ( text [, form] ) → text
将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。

签名

PostgreSQL 18.7 里 normalize 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. normalize ( text [, form] ) → text

    将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。
    • normalize(U&'\0061\0308bc', NFC)U&'\00E4bc'

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 13 ← 12 新增此函数

    PostgreSQL 13 起可用

签名矩阵

每条签名在给出了签名的 8 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 1314151617181920
normalize ( text [, form ] ) → text 存在 存在 存在 存在 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
STRING FUNCTIONS AND OPERATORS 字符串函数和操作符 58 个 ↗
ascii基线 1 ascii ( text ) → integer 8.22 次
返回参数的第一个字符的数字代码。在 UTF8 编码中,返回该字符的 Unicode 码点。在其他多字节编码中,该参数必须是一个 ASCII 字符。 现存
bit_length 3 bit_length ( text ) → integer 8.11 次
返回字符串中的位数(8 倍于 octet_length)。 现存
btrim基线 2 btrim ( string text [, characters text ] ) → text 8.04 次
从 string 的开头和结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
casefold 1 casefold ( text ) → text —
根据排序规则对输入字符串执行大小写折叠。大小写折叠与大小写转换类似,但其目的是方便字符串的不区分大小写匹配,而大小写转换的目的是将字符串转换为特定的大小写形式。此函数只能在服务器编码为 UTF8 时使用。 现存
char_length基线 1 char_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
character_length基线 1 character_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
chr基线 1 chr ( integer ) → text 8.11 次
返回给定代码的字符。在 UTF8 编码中该参数被视作一个 Unicode 码点。在其他多字节编码中该参数必须指定一个 ASCII 字符。chr(0) 字符不被允许,因为文本数据类型不能存储这种字符。 现存
concat 1 concat ( val1 "any" [, val2 "any" [, ...] ] ) → text —
串接所有参数的文本表示。NULL 参数被忽略。 现存
concat_ws 1 concat_ws ( sep text, val1 "any" [, val2 "any" [, ...] ] ) → text —
用分隔符串接除第一个参数外的所有参数。第一个参数用作分隔符字符串,不应为 NULL。其他 NULL 参数将被忽略。 现存
format 2 format ( formatstr text [, formatarg "any" [, ...] ] ) → text 9.31 次
根据格式字符串对参数进行格式化;参见第 9.4.1 节。这个函数类似于 C 函数 sprintf。 现存
getdatabaseencoding 1 getdatabaseencoding ( ) → name —
返回当前数据库的编码名称。 现存
initcap基线 1 initcap ( text ) → text 8.21 次
将每个单词的第一个字母转换为大写(如果该字母是二合字母,且区域设置为 ICU 或 builtin PG_UNICODE_FAST,则转换为标题大小写),其余字母转换为小写。使用 libc 或 builtin 区域设置提供者时,单词是由非字母数字字符分隔的字母数字字符序列;使用 ICU 区域设置提供者时,单词按 ICU 的 u_strToTitle 函数划分。 现存
left 1 left ( string text, n integer ) → text —
返回字符串最左侧的 n 个字符;如果 n 为负,则返回除最后 |n| 个字符之外的全部字符。 现存
length基线 6 length ( text ) → integer 9.16 次
返回字符串中的字符数。 现存
lower基线 3 lower ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部小写。 现存
lpad基线 1 lpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 前面添加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则从右侧截断。 现存
ltrim基线 2 ltrim ( string text [, characters text ] ) → text 144 次
从 string 的开头移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
md5 2 md5 ( text ) → text 8.22 次
计算参数的 MD5 hash,结果以十六进制形式写入。 现存
normalize 1 normalize ( text [, form ] ) → text —
将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。 现存
octet_length基线 4 octet_length ( text ) → integer 8.11 次
返回字符串的字节数。 现存
overlay 3 overlay ( string text PLACING newsubstring text FROM start integer [ FOR count integer ] ) → text 9.02 次
用 newsubstring 替换 string 中从第 start 个字符开始、长度为 count 个字符的子字符串。如果省略 count,则默认为 newsubstring 的长度。 现存
parse_ident 1 parse_ident ( qualified_identifier text [, strict_mode boolean DEFAULT true ] ) → text[] —
将 qualified_identifier 拆分为一个标识符数组,去除各个标识符的引号。默认情况下,最后一个标识符之后的额外字符被视为错误;但是,如果第二个参数为 false,则忽略这些额外的字符。(这种行为对于解析函数等对象的名称有作用。)请注意,此函数不会截断超长标识符。如果你想截断,你可以将结果转换为 name[]。 现存
pg_client_encoding 1 pg_client_encoding ( ) → name —
返回当前客户端编码名称。 现存
position基线 3 position ( substring text IN string text ) → integer 8.11 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。 现存
quote_ident 1 quote_ident ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的标识符。仅在必要时(即字符串包含不能用于标识符的字符,或会发生大小写折叠时)添加引号。内嵌的引号会被适当地双写。另见例 41.1。 现存
quote_literal 2 quote_literal ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量。内嵌的单引号和反斜杠会被适当地双写。注意,quote_literal 在输入为 null 时返回 null;如果参数可能为 null,quote_nullable 通常更合适。另见例 41.1。 现存
quote_nullable 2 quote_nullable ( text ) → text —
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量;如果参数为 null,则返回 NULL。内嵌的单引号和反斜杠会被适当地双写。另见例 41.1。 现存
regexp_count 2 regexp_count ( string text, pattern text [, start integer [, flags text ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中匹配的次数;参见第 9.7.3.1.2 节。 现存
regexp_instr 2 regexp_instr ( string text, pattern text [, start integer [, N integer [, endoption integer [, flags text [, subexpr integer ] ] ] ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中第 N 次匹配的位置;如果没有这样的匹配,则返回零。参见第 9.7.3.1.3 节。 现存
regexp_like 2 regexp_like ( string text, pattern text [, flags text ] ) → boolean 191 次
检查 POSIX 正则表达式 pattern 是否在 string 中出现;参见第 9.7.3.1.4 节。 现存
regexp_match 2 regexp_match ( string text, pattern text [, flags text ] ) → text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;参见第 9.7.3.1.5 节。 现存
regexp_matches 2 regexp_matches ( string text, pattern text [, flags text ] ) → setof text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;如果使用 g 标志,则返回所有匹配中的子字符串。参见第 9.7.3.1.6 节。 现存
regexp_replace 4 regexp_replace ( string text, pattern text, replacement text [, flags text ] ) → text 194 次
替换第一个与 POSIX 正则表达式 pattern 匹配的子字符串,如果使用了 g 标志,则替换所有这样的匹配;参见第 9.7.3.1.7 节。 现存
regexp_split_to_array 2 regexp_split_to_array ( string text, pattern text [, flags text ] ) → text[] 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一个结果的数组;参见第 9.7.3.1.9 节。 现存
regexp_split_to_table 2 regexp_split_to_table ( string text, pattern text [, flags text ] ) → setof text 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一组结果;参见第 9.7.3.1.8 节。 现存
regexp_substr 2 regexp_substr ( string text, pattern text [, start integer [, N integer [, flags text [, subexpr integer ] ] ] ] ) → text 191 次
返回 string 中 POSIX 正则表达式 pattern 的第 N 次匹配对应的子字符串;如果没有这样的匹配,则返回 NULL。参见第 9.7.3.1.10 节。 现存
repeat基线 1 repeat ( string text, number integer ) → text 8.12 次
按 number 指定的次数重复 string。 现存
replace 1 replace ( string text, from text, to text ) → text —
将 string 中所有出现的子字符串 from 替换为子字符串 to。 现存
reverse 2 reverse ( text ) → text 181 次
颠倒字符串中字符的顺序。 现存
right 1 right ( string text, n integer ) → text —
返回字符串中的最后 n 个字符;如果 n 为负数,则返回除前 |n| 个字符之外的全部字符。 现存
rpad基线 1 rpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 后面追加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则截断它。 现存
rtrim基线 2 rtrim ( string text [, characters text ] ) → text 143 次
从 string 的结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
split_part 1 split_part ( string text, delimiter text, n integer ) → text 8.12 次
在出现 delimiter 时拆分 string,并返回第 n 个字段(从一开始计数);如果 n 为负数,则返回倒数第 |n| 个字段。 现存
starts_with 1 starts_with ( string text, prefix text ) → boolean —
如果 string 以 prefix 开始就返回真。 现存
string_to_array 1 string_to_array ( string text, delimiter text [, null_string text ] ) → text[] 9.11 次
将 string 按 delimiter 分割,并将结果字段形成 text 数组。如果 delimiter 是 NULL,则 string 中的每个字符将成为数组中的一个单独元素。如果 delimiter 是空字符串,则 string 被视为单个字段。如果提供了 null_string 且不是 NULL,则匹配该字符串的字段将被 NULL 替换。另请参见 array_to_string。 现存
string_to_table 1 string_to_table ( string text, delimiter text [, null_string text ] ) → setof text —
在出现 delimiter 时拆分 string,并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL,则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串,则将 string 视为单个字段。如果提供了 null_string,并且不是 NULL,则匹配该字符串的字段将被 NULL 替换。 现存
strpos基线 1 strpos ( string text, substring text ) → integer 7.31 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。(与 position(substring in string) 相同,但请注意参数顺序相反。) 现存
substr基线 2 substr ( string text, start integer [, count integer ] ) → text —
提取 string 中从第 start 个字符开始的子字符串;若指定了长度,则提取 count 个字符。(与 substring(string from start for count) 相同。) 现存
substring基线 11 substring ( string text [ FROM start integer ] [ FOR count integer ] ) → text 196 次
提取 string 的子字符串:若指定了起始位置,则从第 start 个字符开始;若指定了长度,则在提取 count 个字符后停止。start 和 count 至少需要指定一个。 现存
to_ascii基线 3 to_ascii ( string text ) → text 8.21 次
将 string 从其他编码转换为 ASCII,源编码可以用名称或编号指定。如果省略 encoding,则使用数据库编码(实际上,这也是唯一有用的情况)。转换主要是去除重音符号。只支持从 LATIN1、LATIN2、LATIN9 和 WIN1250 编码转换。(另一种更灵活的解决方案参见 unaccent 模块。) 现存
to_bin 2 to_bin ( integer ) → text —
将数字转换为等价的二进制补码表示。 现存
to_hex 2 to_hex ( integer ) → text 8.11 次
将数字转换为等价的二进制补码的十六进制表示。 现存
to_oct 2 to_oct ( integer ) → text —
将数字转换为等价的二进制补码的八进制表示。 现存
translate基线 1 translate ( string text, from text, to text ) → text —
将 string 中与 from 集合中匹配的每个字符替换为 to 集合中相应的字符。如果 from 长于 to,输入中出现的 from 中的额外字符会被删除。 现存
trim基线 4 trim ( [ LEADING | TRAILING | BOTH ] [ characters text ] FROM string text ) → text 144 次
从 string 的开始、末端或两端(默认为 BOTH)移除仅包含 characters(默认为空格)字符的最长字符串。 现存
unicode_assigned 1 unicode_assigned ( text ) → boolean —
如果字符串中的所有字符都是已分配的 Unicode 码点,则返回 true;否则返回 false。此函数只能在服务器编码为 UTF8 时使用。 现存
unistr 1 unistr ( text ) → text —
解析参数中转义的 Unicode 字符。Unicode 字符可以被指定为\XXXX(4 个十六进制数字),\+XXXXXX(6 个十六进制数字),\uXXXX(4 个十六进制数字),或\UXXXXXXXX(8 个十六进制数字)。要指定反斜杠,请写入两个反斜杠。所有其他字符均按字面解释。 现存
upper基线 3 upper ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部大写。 现存

本站手册收录 normalize 的版本:1314.2515.2016.1617.1218.719rc220 devel

签名与示例依据同版本 PostgreSQL 手册,中文说明来自已核对的同版本手册与审阅译文,最后同步 2026-11-13。

译文有误请提交到 pgsty/pgdoc;本站渲染或数据的问题提交到 pgsty/pgweb。