SQL SUBSTRING 函數


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)的絕對值), 如果這個差為負數就返回空

畫個圖理解這種情況(比如SUBSTRING('abcde',0,2)返回a):

坐標:0       1         2     3     4    5
內容:空      a                b         c     d      e
截取:從此截取        截取到這里結束

 

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

 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|) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM