PostgreSQL大小寫排序問題

來源:互聯網
上載者:User

在PostgreSQL中建立如下表並插入如下資料

CREATE TABLE "TTT" (

   ID varchar(32) PRIMARY KEY NOT NULL,

   NAME varchar(128) NOT NULL

);

CREATE UNIQUE INDEX TTT_NAME_IDX ON "TTT"(NAME);

insert into "TTT" values('1' , 'A');

insert into "TTT" values('2' , 'a');

insert into "TTT" values('3' , 'B');

insert into "TTT" values('4' , 'b');

此時如果執行

select * from "TTT" order by NAME;

將會得到以下結果

 id | name 

----------+------------

 2  | a

 1  | A

 4  | b

 3  | B

(4 rows)

這裡我們期望name的排序是先按大寫字母排序,然後再按照小寫字母排序。

 

查了一下資料,可以通過如下操作來解決以上排序問題

1. 首先備份資料庫設定檔和資料檔案(最好匯出資料),預設情況下就是/var/lib/pgsql/data目錄下所有東東

2. $ sudo /etc/init.d/postgresql stop

3. $ sudo su - postgres

   # initdb --lc-collate=C

4. $ sudo /etc/init.d/postgresql start

5. 再次執行以下查詢

select * from "TTT" order by NAME;

結果如下:

 id | name 

----+------

 1  | A

 3  | B

 2  | a

 4  | b

(4 rows)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.