Postgresql 9.4.6 OSX与Linux上的奇怪排序行为

时间:2016-02-17 22:05:18

标签: linux macos postgresql sorting

当我使用Postgres 9.4.6在linux和Mac OSX上运行时,我获得了不同的排序。这是Postgres的一个错误吗?

CREATE TEMPORARY TABLE SORTER ( name VARCHAR );
INSERT INTO SORTER (name) VALUES ('A B'); 
INSERT INTO SORTER (name) VALUES ('AB'); 
INSERT INTO SORTER (name) VALUES ('A C'); 
INSERT INTO SORTER (name) VALUES ('AC'); 
SELECT * FROM SORTER ORDER BY name; 
SELECT * FROM SORTER ORDER BY name DESC;

OSX:

name
------
 A B
 A C
 AB
 AC
(4 rows)

 name
------
 AC
 AB
 A C
 A B
(4 rows)

Linux的:

name 
------
AB
A B
AC
A C
(4 rows)

name 
------
A C
AC
A B
AB
(4 rows)

1 个答案:

答案 0 :(得分:1)

问题是架构上的LC_CTYPE是UTF-8。出于某种原因,在mac上它被设置为C.

要修复它,您可以在Linux端添加collate 'C'选项。