我使用的是 PostgreSQL 16,我的专栏的排序规则是
en_US.utf8
,如下所示:
create table t (a varchar(10) collate "en_US.utf8");
insert into t (a) values ('a'), ('b'),('{a'), ('{b'),
('{a{a'), ('{a{b'), ('{aa'), ('{ab');
然后,如果我按列排序
a
:
select * from t order by a;
我得到:
{a
a
{a{a
{aa
{a{b
{ab
{b
b
我期待 'a' 在 '{a' 之前,因为 'a' 的代码点为 97,而 '{' 的代码点为 123。
我需要使用不同的排序规则来进行 Unicode 排序吗?
我的用例使用更长的字符串,但我认为这个简单的示例说明了我遇到的问题。