pg中replace和translate的用法說(shuō)明(數(shù)據(jù)少的中文排序)
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', '大貓', '女', '一年級(jí)', '繪畫', '第三小學(xué)', '2345');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('2', '小厭', '男', '三年級(jí)', '書法', '第四小學(xué)', '2346');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('3', '庫(kù)庫(kù)', '女', '二年級(jí)', '繪畫', '第三小學(xué)', '2342');
INSERT INTO "public"."students" ("id", "name", "sex", "class", "like", "school", "phone")
VALUES ('4', '艾琳', '女', '四年級(jí)', '書法,鋼琴', '第四小學(xué)', '2349');
結(jié)果:
select * from students
如下圖:

3.replace 的用法
replace(string text, from text, to text)
返回類型:text
解釋:把字串string里出現(xiàn)地所有子字串from替換成子字串to
示例1:
select replace('一條黑色的狗','黑','黑白相間')
結(jié)果:一條黑色的狗 變成了 一條黑白相間色的狗
如下圖:

示例2:
update students set name=replace(name,'大貓','小貓咪的姐姐')
結(jié)果:name為 ‘大貓'的這條數(shù)據(jù)name='小貓咪的姐姐'

示例3:
select * from students where school='第四小學(xué)' ORDER BY replace(name,'艾琳','1')
結(jié)果:

4.translate的用法
translate(string text, from text, to text)
返回類型:text
解釋:把在string中包含的任何匹配from中的字符的字符轉(zhuǎn)化為對(duì)應(yīng)的在to中的字符。
示例1:
select translate('她真是好看', '好看','漂亮')
結(jié)果:

示例2:
select * from students where phone like '2%' ORDER BY translate(class, '一二三四','1234')
結(jié)果:

示例3:
select * from students where phone like '2%' ORDER BY translate(name, '庫(kù)小厭貓咪艾','1234')
結(jié)果

結(jié)論:
有了translate再也不擔(dān)心中文排序問(wèn)題了(數(shù)據(jù)比較少的情況)
補(bǔ)充:pg中position、split_part、translate、strpos、length函數(shù)
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
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','.',''))
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PotgreSQL?基于時(shí)間點(diǎn)恢復(fù)過(guò)程
本篇文章介紹?PostgreSQL?基于時(shí)間點(diǎn)恢復(fù)(point-in-time-recover)需要的條件及恢復(fù)過(guò)程,屬于操作說(shuō)明,對(duì)PotgreSQL?時(shí)間點(diǎn)恢復(fù)相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2023-08-08
pgsql 如何刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)
這篇文章主要介紹了pgsql 刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
PostgreSQL使用jsonb進(jìn)行數(shù)組增刪改查的操作詳解
有時(shí)候我們需要使用PostgreSQL這種結(jié)構(gòu)化數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)一些非結(jié)構(gòu)化數(shù)據(jù),PostgreSQL恰好又提供了json這種數(shù)據(jù)類型,這里我們來(lái)簡(jiǎn)單介紹使用jsonb的一些常見(jiàn)操作,需要的朋友可以參考下2024-03-03
初識(shí)PostgreSQL存儲(chǔ)過(guò)程
這篇文章主要介紹了初識(shí)PostgreSQL存儲(chǔ)過(guò)程,本文講解了PostgreSQL中存儲(chǔ)過(guò)程的語(yǔ)法,并給出了一個(gè)操作實(shí)例,需要的朋友可以參考下2015-01-01
postgresql coalesce函數(shù)數(shù)據(jù)轉(zhuǎn)換方式
這篇文章主要介紹了postgresql coalesce函數(shù)數(shù)據(jù)轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
淺析postgresql 數(shù)據(jù)庫(kù) TimescaleDB 修改分區(qū)時(shí)間范圍
這篇文章主要介紹了淺析postgresql 數(shù)據(jù)庫(kù) TimescaleDB 修改分區(qū)時(shí)間范圍,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

