我有一個用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