91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

substring函數怎么在PostgreSQL中使用

發布時間:2021-02-03 08:51:49 來源:億速云 閱讀:164 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關substring函數怎么在PostgreSQL中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

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

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

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

substring函數怎么在PostgreSQL中使用

第一個

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

第二個

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

第三個

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

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

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

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

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

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

substring函數怎么在PostgreSQL中使用

解決1:

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

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

substring函數怎么在PostgreSQL中使用

解決2:

也可以根據position這個函數來解決,這個函數類似于python的index,就是把字符串的某個字符轉變為該字符所在的位置數,如此一來便可以使用substring的第一個例子用法,即

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

ooook 搞定了!!!

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

如下所示:

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

上述就是小編為大家分享的substring函數怎么在PostgreSQL中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拜泉县| 通江县| 织金县| 赣州市| 焦作市| 诸城市| 德格县| 双城市| 白朗县| 吉安市| 囊谦县| 上犹县| 蛟河市| 西丰县| 新郑市| 玉林市| 临颍县| 青海省| 长兴县| 定兴县| 宝丰县| 甘南县| 拉孜县| 双鸭山市| 河曲县| 门头沟区| 巩义市| 洛隆县| 化州市| 三台县| 门源| 泸溪县| 江达县| 河间市| 遵义县| 中西区| 三河市| 青铜峡市| 阿拉善左旗| 永年县| 西宁市|