Babelfish 排序规则支持 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Babelfish 排序规则支持

排序规则指定数据的排序顺序和表示格式。Babelfish 将 SQL Server 排序规则映射到 Babelfish 提供的类似排序规则。Babelfish 使用文化敏感的字符串比较和排序顺序预先定义了 Unicode 排序规则。Babelfish 还提供了一种将 SQL Server 数据库中的排序规则转换为最接近匹配的 Babelfish 排序规则的方法。针对不同的语言和区域提供了特定于区域设置的排序规则。

某些排序规则指定了与客户端编码对应的代码页。根据每个输出列的排序规则,Babelfish 会自动从服务器编码转换为客户端编码。

Babelfish 使用 ICU 排序规则库的 153.80 版本。有关为 PostgreSQL 排序规则行为的详细信息,请参阅 PostgreSQL 文档

Babelfish 支持确定性和非确定性排序规则:

  • 排序规则会将两个具有完全相同的字节序列的字符视为相等。确定性排序规则评估 xX 不相等。确定性的排序规则区分大小写 (CS) 且区分重音 (AS)。

  • 非确定性排序规则不需要相同的匹配。非确定性排序规则评估 xX 相等。非确定性排序规则不区分大小写 (CI) 且不区分重音 (AI)。

Babelfish 和 SQL Server 遵循描述排序规则属性的排序规则命名约定,如下表所示。

属性 描述

AI

不区分重音。

AS

区分重音。

BIN2

BIN2 请求按代码点顺序对数据进行排序。Unicode 代码点顺序与 UTF-8、UTF-16 和 UCS-2 编码的字符顺序相同。代码点顺序是一种快速的确定性排序规则。

CI

不区分大小写。

CS

区分大小写。

PREF

要在小写字母之前对大写字母进行排序,请使用 PREF 排序规则。如果比较不区分大小写,在没有其他区别的情况下,字母的大写版本排序将在小写版本之前。ICU 库支持带有 colCaseFirst=upper 的大写字母首选项,但不适用于 CI_AS 排序规则。

PREF 只能应用于 CS_AS 确定性排序规则。

PostgreSQL 不支持将 LIKE 子句用于非确定性排序规则,但 Babelfish 支持将其用于 CI_AS 排序规则。Babelfish 不支持将 LIKE 子句用于 AI 排序规则。也不支持对非确定性排序规则进行模式匹配操作。

要建立 Babelfish 排序规则行为,请设置以下参数。

参数 描述

default_locale

default_locale 参数与上表中的排序规则属性结合使用,以便为特定语言和区域自定义排序规则。默认值为 en-US

原定设置区域设置适用于以字母 BBF 开头的所有 Babelfish 排序规则,以及映射到 Babelfish 排序规则的所有 SQL Server 排序规则。您可以在初始创建 Babelfish 数据库后更改此参数,但它不会影响现有排序规则的区域设置。

server_collation_name

在服务器级别和数据库级别用作原定设置排序规则的排序规则。默认值为 sql_latin1_general_cp1_ci_asserver_collation_name 必须是一种 CI_AS 排序规则,是因为在 T-SQL 中,服务器排序规则决定了标识符的比较方式。

当您创建 Aurora PostgreSQL 集群以与 Babelfish 结合使用时,您可以从下表中的排序规则中为 Collation name 字段进行选择。请勿在 Babelfish 数据库创建之后修改 server_collation_name

将以下排序规则用作服务器排序规则或对象排序规则。

排序规则 ID 备注

BBF_Unicode_General_CI_AS

支持不区分大小写的比较和 LIKE 运算符。

BBF_Unicode_CP1_CI_AS

非确定性排序规则也被称为 CP1252。

BBF_Unicode_CP1250_CI_AS

非确定性排序规则用于表示使用拉丁文字的中欧和东欧语言的文本。

BBF_Unicode_CP1251_CI_AS

使用西里尔文字的语言的非确定性排序规则

BBF_Unicode_CP1253_CI_AS

用于代表现代希腊语的非确定性排序规则

BBF_Unicode_CP1254_CI_AS

支持土耳其语的非确定性排序规则

BBF_Unicode_CP1255_CI_AS

支持希伯来语的非确定性排序规则

BBF_Unicode_CP1256_CI_AS

用来编写使用阿拉伯文字的语言的非确定性排序规则

BBF_Unicode_CP1257_CI_AS

用于支持爱沙尼亚语、拉脱维亚语和立陶宛语的非确定性排序规则

BBF_Unicode_CP1258_CI_AS

用于编写越南语字符的非确定性排序规则

BBF_Unicode_CP874_CI_AS

用于编写泰语字符的非确定性排序规则

sql_latin1_general_cp1250_ci_as

用来表示拉丁字符的非确定性单字节字符编码

sql_latin1_general_cp1251_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1253_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1254_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1255_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1256_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1257_ci_as

支持拉丁字符的非确定性排序规则

sql_latin1_general_cp1258_ci_as

支持拉丁字符的非确定性排序规则

chinese_prc_ci_as

支持中文 (PRC) 的非确定性排序规则。

cyrillic_general_ci_as

支持西里尔文的非确定性排序规则。

finnish_swedish_ci_as

支持芬兰语的非确定性排序规则。

french_ci_as

支持法语的非确定性排序规则。

korean_wansung_ci_as

支持韩语的非确定性排序规则(带字典排序)。

latin1_general_ci_as

支持拉丁字符的非确定性排序规则。

modern_spanish_ci_as

支持现代西班牙语的非确定性排序规则。

polish_ci_as

支持波兰语的非确定性排序规则。

thai_ci_as

支持泰语的非确定性排序规则。

traditional_spanish_ci_as

支持西班牙语的非确定性排序规则(传统排序)。

turkish_ci_as

支持土耳其语的非确定性排序规则。

ukrainian_ci_as

支持乌克兰语的非确定性排序规则。

vietnamese_ci_as

支持越南语的非确定性排序规则。

您可以将以下排序规则作为对象排序规则。

方言 确定性选项 非确定性选项

阿拉伯语

Arabic_CS_AS

Arabic_CI_AS、Arabic_CI_AI

中文

Chinese_CS_AS

Chinese_CI_AS、Chinese_CI_AI

Cyrillic_General

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS、Cyrillic_General_CI_AI

爱沙尼亚语

Estonian_CS_AS

Estonian_CI_AS、Estonian_CI_AI

Finnish_Swedish

Finnish_Swedish_CS_AS

Finnish_Swedish_CI_AS、Finnish_Swedish_CI_AI

法语

French_CS_AS

French_CI_AS、French_CI_AI

希腊语

Greek_CS_AS

Greek_CI_AS、Greek_CI_AI

希伯来语

Hebrew_CS_AS

Hebrew_CI_AS、Hebrew_CI_AI

Korean_Wamsung

Korean_Wamsung_CS_AS

Korean_Wamsung_CI_AS、Korean_Wamsung_CI_AI

Modern_Spanish

Modern_Spanish_CS_AS

Modern_Spanish_CI_AS、Modern_Spanish_CI_AI

蒙古语

Mongolian_CS_AS

Mongolian_CI_AS、Mongolian_CI_AI

波兰语

Polish_CS_AS

Polish_CI_AS、Polish_CI_AI

泰语

Thai_CS_AS

Thai_CI_AS、Thai_CI_AI

Traditional_Spanish

Traditional_Spanish_CS_AS

Traditional_Spanish_CI_AS、Traditional_Spanish_CI_AI

土耳其语

Turkish_CS_AS

Turkish_CI_AS、Turkish_CI_AI

乌克兰语

Ukranian_CS_AS

Ukranian_CI_AS、Ukranian_CI_AI

越南语

Vietnamese_CS_AS

Vietnamese_CI_AS、Vietnamese_CI_AI