我有一个用da_DK.utf8语言环境创建的PostgreSQL 8.4数据库。PostgreSQL在订购时忽略破折号
dbname=> show lc_collate;
lc_collate
------------
da_DK.utf8
(1 row)
当我选择,我在字符顺序变化的专栏中,我得到一个奇怪的行为IMO表的东西。当订购的结果PostgreSQL的忽略前缀的价值破折号,例如:
select name from mytable order by name asc;
可能返回类似
name
----------------
Ad...
Ae...
Ag...
- Ak....
At....
破折号前缀似乎被忽略。
我可以通过转换列在订货时解决此问题为latin1:
select name from mytable order by convert_to(name, 'latin1') asc;
的我得到预期的结果为:
name
----------------
- Ak....
Ad...
Ae...
Ag...
At....
为什么破折号前缀得到默认被忽略掉?这种行为可以改变吗?
什么操作系统您使用的?它在Windows 7上正常工作,不需要convert_to()。 – 2011-02-10 09:56:39
我正在运行的Ubuntu服务器10.10和PostgreSQL版本8.4.7是精确的 – HakonB 2011-02-10 10:12:28