首頁  >  文章  >  資料庫  >  sql語句如何截取某一欄位的一部分

sql語句如何截取某一欄位的一部分

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-06-18 15:06:0021828瀏覽

在sql中,可以使用SUBSTRING語句截取某欄位的一部分,語法格式為「SUBSTRING(字串,開始位置,截取長度)」。 SQL中的substring函數是用來抓出一個欄位資料中的其中一部分

sql語句如何截取某一欄位的一部分

#本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

SUBSTRING ( expression, start, length )

參數 

expression 

字串、二進位字串、文字、圖像、列或包含列的表達式。請勿使用包含聚合函數的表達式。 

start 

整數或可隱含轉換為 int 的表達式,指定子字串的開始位置,索引是從1開始。 

length 

整數或可隱含轉換為 int 的表達式,並指定子字串的長度。經測試,暫且發現只能是非負數

傳回值

1、如果 expression 是一種支援的二進位資料類型,則傳回二進位數據,這種情況我們暫且不討論。

2、如果 expression 是支援的字元資料類型,則傳回字元資料。

(1)如果start的索引是從1開始,則從表達式的第一個字元開始進行字串截取,從2開始就從表達式的第二個字元開始截取,以此類推。

例如:

 select SUBSTRING('abcde',1,2) 返回结果 ab
 select SUBSTRING('abcde',2,3) 返回结果 bcd
 select SUBSTRING('abcde',1,0) 返回结果为空
 select SUBSTRING('abcde',0,8) 返回结果为abcde,注意后面没有空格了。

(2) 如果start的索引是從小於1(0或負數)開始,則回傳長度等於從1開始,截取長度為length - ((start - 1)的絕對值), 如果這個差為負數就回傳空。

例如:下面的 || 表示絕對值計算

select SUBSTRING('abcde',0,2) 返回结果为 a , 计算公式为SUBSTRING(1,2-|2-1|) 
 select SUBSTRING('abcde',0,-1) 返回错误提示“传递到 substring 函数的长度参数无效”
 select SUBSTRING('abcde',-1,2) 返回结果为空, 计算公式为SUBSTRING(1,2-|-1-1|) 
 select SUBSTRING('abcde',-5,3) 返回结果为空, 计算公式为SUBSTRING(1,3-|-5-1|) 
 select SUBSTRING('abcde',-1,4) 返回结果为ab, 计算公式为SUBSTRING(1,4-|-1-1|) 
 select SUBSTRING('abcde',-2,8) 返回结果为abcde, 计算公式为SUBSTRING(1,8-|-2-1|)

相關學習推薦:mysql教學(影片)

以上是sql語句如何截取某一欄位的一部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn