在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)
PostgreSQL批量修改列名大小寫
在postgresql中預設是大小寫敏感的,並缺省會將sql語句轉化為小寫。今天碰到同事在gp裡面建表的時候給列名加上引號,如下 create table t3 id int,info text 這樣會導致將列名變成了大寫,那麼如果直接查詢就會報錯 bill bill select id from ...
字元大小寫排序
題目十八 給定乙個只包含字母的字串,按照先小寫字母後大寫字母的順序進行排序。注意事項 小寫字母或者大寫字母他們之間不一定要保持在原始字串中的相對位置。您在真實的面試中是否遇到過這個題?yes 樣例給出 abacd 乙個可能的答案為 acbad 挑戰 在原地掃瞄一遍完成 class solution ...
Postgresql查詢時不區大小寫
postgresql提供有強大的正規表示式系統,可以在資料庫級別實現模糊查詢。正規表示式匹配操作符 操作符描述例子 匹配正規表示式,大小寫相關 thomas thomas.匹配正規表示式,大小寫無關 thomas thomas.不匹配正規表示式,大小寫相關 thomas thomas.不匹配正規表示...