如何在Postgres中按民族字符排序

时间:2019-01-22 10:55:12

标签: sql postgresql sorting collation

我正在尝试检索按某个字段排序的项目,但是排序应考虑到国家字符-否则将以国家字符开头的字段推到结果集的底部。我正在使用“ 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
➜  ~

0 个答案:

没有答案