濮阳杆衣贸易有限公司

主頁 > 知識庫 > PostgreSQL字符切割:substring函數(shù)的用法說明

PostgreSQL字符切割:substring函數(shù)的用法說明

熱門標簽:漯河外呼電話系統(tǒng) 合肥公司外呼系統(tǒng)運營商 打電話智能電銷機器人授權 美容工作室地圖標注 辦公外呼電話系統(tǒng) 外呼調(diào)研系統(tǒng) 海豐有多少商家沒有地圖標注 重慶自動外呼系統(tǒng)定制 地圖標注和圖片名稱的區(qū)別

作為當前最強大的開源數(shù)據(jù)庫,Postgresql(以下簡稱pg)對字符的處理也是最為強大的,首先他也有substr,trim等其他數(shù)據(jù)庫都有的普通函數(shù),這里我們介紹他更強大的一個函數(shù)substring,可以像python,java等編程語言一樣使用正則表達式,強大到極點

在此之前我們先了解一下正則表達式最基礎的四個

%代表一個或多個字符 _代表一個字符 ^代表字符前 $代表字符后

pg的官網(wǎng)上對其用法是下面這樣,但不夠清楚了然,下面我一一解釋

第一個

用法和substr差不多,是指定序列,from 2 for 3 是從序列為2的位置開始取3個字符。例子如上

第二個

例子用法的意思是:$代表字符后, 一個點代表一個字符,即從最末尾開始選擇3個字符,同樣的如果是substring('Thomas' from '^....') 則結果是Thom

第三個

用法是最實用的,也是最難理解的,先大致理解:

from '%#"o_a#"_' for '#' 中from是開始(包含),for后面跟的是逃逸,即結束

這個例子的意思是我想要o_a的組合字符,其中o_a的多個(%)字符不要,后面的一個(_)字符不要,這里要注意的是切分后面剩多少字符寫幾個_

這里的架構可以理解為固定的,即 from '#"#"' for '#' #" 是分割字符,可以在#"前中后限定選擇你最想要的字符

下面用實例來講解一下第三個用法

需求:下圖的查詢結果是查的日志表,我想要【】里的數(shù)據(jù),由于【】里字符長度不固定,又只能用sql來切割,因此只能使用第三種方法來獲取【】里的數(shù)據(jù)

解決1:

根據(jù)上面的思想,我可以寫這樣的架構'【#"%#"_______' FOR '#',試著運行一下

SELECT
 SUBSTRING (
 log_txt
 FROM
  '【#"%#"_______' FOR '#'
 ) log_txt
FROM
 operation_log
WHERE
 log_type = '15'
LIMIT 3

解決2:

也可以根據(jù)position這個函數(shù)來解決,這個函數(shù)類似于python的index,就是把字符串的某個字符轉變?yōu)樵撟址诘奈恢脭?shù),如此一來便可以使用substring的第一個例子用法,即

SUBSTRING ( log_txt FROM 2 FOR position('【'))

ooook 搞定了!?。?/p>

補充:Postgresql之split_part()切割函數(shù)

如下所示:

split_part(string text, delimiter text2, field int)

text要切割的字段; text2按照什么形式切割 int截取的位置

ps:

text=“name.cn” split_part(text,'.',1) 結果: name
text=“name.cn” split_part(text,'.',2) 結果: cn
text=“name.cn.com” split_part(text,'.',3) 結果: com

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql 實現(xiàn)字符串分割字段轉列表查詢
  • Postgresql 截取字符串的案例
  • postgresql 查詢集合結果用逗號分隔返回字符串處理的操作
  • postgresql 將逗號分隔的字符串轉為多行的實例
  • PostgreSQL向數(shù)據(jù)庫表中添加行數(shù)據(jù)的操作
 

標簽:衡陽 珠海 烏海 晉城 蚌埠 株洲 來賓 錦州

巨人網(wǎng)絡通訊聲明:本文標題《PostgreSQL字符切割:substring函數(shù)的用法說明》,本文關鍵詞  PostgreSQL,字符,切割,substring,函數(shù),的,用法,說明,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL字符切割:substring函數(shù)的用法說明》相關的同類信息!
  • 本頁收集關于PostgreSQL字符切割:substring函數(shù)的用法說明的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    安龙县| 钟山县| 黄浦区| 衡阳市| 轮台县| 治多县| 濮阳市| 吉林省| 达孜县| 芜湖市| 建德市| 红河县| 柳林县| 梁河县| 元氏县| 安平县| 仁化县| 桐梓县| 扶风县| 辽阳县| 苏尼特左旗| 马关县| 汉沽区| 花莲县| 泸水县| 凤凰县| 铜陵市| 贵溪市| 泗水县| 静安区| 镇巴县| 松江区| 清涧县| 茌平县| 房产| 高密市| 城固县| 吐鲁番市| 陵川县| 逊克县| 通化市|