当我使用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)
答案 0 :(得分:1)
问题是架构上的LC_CTYPE是UTF-8。出于某种原因,在mac上它被设置为C.
要修复它,您可以在Linux端添加collate 'C'
选项。