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

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

百科 / 排序规则与编码 / 内置排序规则

ucs_basic

按 Unicode 码点排序,采用 C 字符语义

当前查看 PostgreSQL 18.6。

说明

按 Unicode 码点排序,采用 C 字符语义

是否确定性比较(collisdeterministic)
t
排序区域设置(collcollate)
_null_
字符分类区域设置(collctype)
_null_
区域设置(colllocale)
C
ICU 规则(collicurules)
_null_
提供者版本(collversion)
1
排序规则名称(collname)
ucs_basic
排序规则提供者(collprovider)
b
字符编码(collencoding)
6

手册定义

23.2.2.1. 标准排序规则

在所有平台上,都支持以下排序规则:

unicode

此 SQL 标准排序规则使用 Unicode 排序算法和默认 Unicode 排序元素表进行排序。它在所有编码中都可用。使用此排序规则需要 ICU 支持,并且如果 PostgreSQL使用不同版本的 ICU 构建,其行为可能会发生变化。(此排序规则与 ICU 根区域设置具有相同的行为;参见und-x-icu(表示“未定义”)。)

ucs_basic

这一 SQL 标准排序规则按 Unicode 码点值排序,而不按自然语言顺序排序,并且仅将 ASCII 字母 A 到 Z 视为字母。它在各版本中的行为高效且稳定,仅适用于 UTF8 编码;行为与 UTF8 编码下的 libc 区域设置 C 相同。

pg_unicode_fast

此排序规则按 Unicode 代码点值而不是自然语言顺序进行排序。对于 lower、initcap和 upper函数,它使用 Unicode 完整大小写映射。对于模式匹配(包括正则表达式),它使用 Unicode 兼容属性的标准变体。其行为在 Postgres主版本内高效且稳定。仅适用于 UTF8编码。

pg_c_utf8

此排序规则按 Unicode 代码点值而不是自然语言顺序进行排序。对于 lower、initcap和 upper函数,它使用 Unicode 简单大小写映射。对于模式匹配(包括正则表达式),它使用 Unicode 兼容属性的 POSIX 兼容变体。其行为在 PostgreSQL主版本内高效且稳定。此排序规则仅适用于UTF8编码。

C(等同于POSIX)

C和POSIX排序规则基于“传统 C”行为。它们按字节值而不是自然语言顺序排序,并且只有 ASCII 字母“A”到“Z”会被视为字母。对于给定的数据库编码,其行为高效且在所有版本中都稳定,但在不同数据库编码之间可能会有所不同。

默认

default排序规则会选择数据库创建时指定的区域设置。

根据操作系统支持情况,还可能存在其他排序规则。这些附加排序规则的效率和稳定性取决于排序规则提供程序、提供程序版本以及区域设置。

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 16 → 17: 属性变化。

以下差异保留原始字段名与英文源描述。

--- PostgreSQL 16
+++ PostgreSQL 17
@@ -1,8 +1,8 @@
 {
-  "collcollate": "C",
-  "collctype": "C",
   "collencoding": "6",
   "collisdeterministic": "t",
   "collname": "ucs_basic",
-  "collprovider": "c"
+  "collprovider": "b",
+  "collversion": "1",
+  "locale": "C"
 }

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回排序规则与编码 · 收录范围为 PostgreSQL 16 至 20;最早采样版本不一定是实际引入版本。