Ben cs_CZ (Çek) ayarlanır harmanlama içeren bir tablo var: Ben dize tarafından sipariş zaman Çek alfabesinin göre olması gerektiği gibiPostgreSQL yanlış Çek harmanlama ile unicode karakter sıralar
Name | Encoding | Collation | CType
-----------+----------+-------------+-------------
foo | UTF8 | cs_CZ.UTF-8 | cs_CZ.UTF-8
ama, sonuç olarak sıralanmamıştır : Yani unicode vurgu karakteri (D) vurgu (D) olmadan ASCII sürümü döndürülecekse gibi sıralanır
=> SELECT surname FROM foo ORDER BY surname;
surname
-----------------
A
Da
Ďb
Dc
E
. Ama Çek alfabesi: ... C -> D -> Ď -> E ..., bu yüzden döndürülen düzen yanlıştır (bu örnekte şöyle olmalıdır: A -> Da -> Dc -> Ďb -> E).
Bu alışıldık PostgreSQL davranışı mı? Çek alfabesine göre doğru şekilde nasıl sıralanır bir yolu var mı?
DÜZENLEME: Postgres 9.1.4'de denenmiş, her ikisi de aynı davranışı vardır. Bu bir Arch Linux makinesidir.
EDIT2: Düzeltilmiş örnek, real gerçek bir sorundur.
Lütfen hangi PostgreSQL sürümünü kullandığınızı bize bildirin. –
Sadece tesadüfen, PostgreSQL 9.1 veya daha yeni bir versiyonda oluyor musunuz? Öyleyse, * foo * tablonuzdaki * soyadı * sütunu farklı bir harmanlamaya ayarlandı mı? –
Üzgünüm, bu Postgres 9.1.4 ve 9.2.4 de aynıdır. Soru güncellendi. Ve hayır, herhangi bir sütuna özel harmanlama yoktur. –