我正在尝试检索按某个字段排序的项目,但是排序应考虑到国家字符-否则将以国家字符开头的字段推到结果集的底部。我正在使用“ pl_PL”排序规则,但没有得到正确的结果。
考虑以下示例:
show client_encoding ;
CREATE DATABASE collate_test;
\connect collate_test;
CREATE TABLE items (name varchar(64) NOT NULL);
INSERT INTO items VALUES ('wino');
INSERT INTO items VALUES ('ananas');
INSERT INTO items VALUES ('łopata');
SELECT name FROM items ORDER BY name COLLATE "pl_PL";
我正在输出:
client_encoding
-----------------
UTF8
(1 row)
CREATE DATABASE
You are now connected to database "collate_test" as user "lukasz".
CREATE TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
name
--------
ananas
wino
łopata
(3 rows)
select
语句的输出应为:
name
--------
ananas
łopata
wino
(3 rows)
(请注意,“łopata”应位于“ ananas”和“ wino”之间)
系统信息:
在MacOS上通过自制软件安装的Postgres 10.4。
➜ ~ psql --version
psql (PostgreSQL) 10.4
➜ ~ uname -a
Darwin Ahadi.local 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
➜ ~