我是postrges的新手,想排序varchar類型的列。要與下面的例子說明問題:字母數字大小寫在postgres中的敏感排序
表名:testsorting
order name
1 b
2 B
3 a
4 a1
5 a11
6 a2
7 a20
8 A
9 a19
區分大小寫的排序(這是默認在postgres的)給出:
select name from testsorting order by name;
A
B
a
a1
a11
a19
a2
a20
b
的情況下在 - 敏感排序給出:
從testsorting命令中選擇名稱由UPPER(姓名);
A
a
a1
a11
a19
a2
a20
B
b
我怎樣才能使字母情況下,敏感的Postgres的排序得到以下順序:
a
A
a1
a2
a11
a19
a20
b
B
我不會介意爲大寫或小寫字母的順序,但順序應該是「 aAbB「或」AaBb「並且不應該是」ABab「
請在postgres中建議您是否有任何解決方案。
感謝米哈爾。我檢查了psql -l,但未顯示配置的區域設置。在SELECT中使用COLLATE「pl_PL」工作,並在不敏感的情況下對列表進行排序,但在「a11」和「a19」之後列出的還有字母數字和「a2」的問題。你的意思是說,使用適當的COLLATE將解決字母數字排序? – akhi 2013-03-15 11:57:13
請參閱我編輯的答案 – 2013-03-15 12:31:26