1.首先創(chuàng)建students表
CREATE TABLE students
(
id integer NOT NULL,
name character varying(255),
sex character varying(255),
class character varying(255),
"like" character varying(255),
school character varying(255),
phone character varying(255)
)
2.插入數(shù)據(jù)
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('1', '大貓', '女', '一年級', '繪畫', '第三小學(xué)', '2345');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('2', '小厭', '男', '三年級', '書法', '第四小學(xué)', '2346');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('3', '庫庫', '女', '二年級', '繪畫', '第三小學(xué)', '2342');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('4', '艾琳', '女', '四年級', '書法,鋼琴', '第四小學(xué)', '2349');
結(jié)果:
如下圖:
![](/d/20211018/bc65a730881cb5a9291be52b265233e5.gif)
3.replace 的用法
replace(string text, from text, to text)
返回類型:text
解釋:把字串string里出現(xiàn)地所有子字串from替換成子字串to
示例1:
select replace('一條黑色的狗','黑','黑白相間')
結(jié)果:一條黑色的狗 變成了 一條黑白相間色的狗
如下圖:
![](/d/20211018/eabacab60b34bab539e2cad383134138.gif)
示例2:
update students set name=replace(name,'大貓','小貓咪的姐姐')
結(jié)果:name為 ‘大貓'的這條數(shù)據(jù)name='小貓咪的姐姐'
![](/d/20211018/d1f517e97686c74276625e6119757ee4.gif)
示例3:
select * from students where school='第四小學(xué)' ORDER BY replace(name,'艾琳','1')
結(jié)果:
![](/d/20211018/7bbd262bf4df3b25cf01a03b528f9f49.gif)
4.translate的用法
translate(string text, from text, to text)
返回類型:text
解釋:把在string中包含的任何匹配from中的字符的字符轉(zhuǎn)化為對應(yīng)的在to中的字符。
示例1:
select translate('她真是好看', '好看','漂亮')
結(jié)果:
![](/d/20211018/276dca989711243c247924d6fcc557cb.gif)
示例2:
select * from students where phone like '2%'
ORDER BY translate(class, '一二三四','1234')
結(jié)果:
![](/d/20211018/5ab898047295cc2a2d7c4243a2427a1c.gif)
示例3:
select * from students where phone like '2%'
ORDER BY translate(name, '庫小厭貓咪艾','1234')
結(jié)果
![](/d/20211018/0102ab6b7eaf61dd20f65df8647437fb.gif)
結(jié)論:
有了translate再也不擔(dān)心中文排序問題了(數(shù)據(jù)比較少的情況)
補(bǔ)充:pg中position、split_part、translate、strpos、length函數(shù)
我就廢話不多說了,大家還是直接看代碼吧~
select position('.' in '1.1.2.10');
select split_part('1.1.2.10','.',length('1.1.2.10') - length(translate('1.1.2.10','.',''))+1);
select split_part('1.1.2','.',length('1.1.2') - length(translate('1.1.2','.',''))+1);
select length(translate('1.1.2.10','.','a'))+1 as num
select translate('1.1.2.10','.','')
select strpos('1.1.2.10','.')
select instr('1.1.2.10','.',1,3)
select length('1.1.2.10') - length(translate('1.1.2.10','.',''))
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- PostgreSQL 遠(yuǎn)程連接配置操作
- postgreSQL中的內(nèi)連接和外連接實現(xiàn)操作
- postgreSQL中的case用法說明
- 基于postgreSql 常用查詢小結(jié)
- postgresql 查詢字符串中是否包含某字符的操作
- PostgreSQL 自動Vacuum配置方式