SQL截取字符串函數分享。本站提示廣大學習愛好者:(SQL截取字符串函數分享)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL截取字符串函數分享正文
A.截取從字符串右邊開端N個字符
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Left(@S1,4)
------------------------------------
顯示成果: http
B.截取從字符串左邊開端N個字符(例如取字符www.163.com)
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select right(@S1,11)
------------------------------------
顯示成果: www.163.com
C.截取字符串中隨意率性地位及長度(例如取字符www)
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select SUBSTRING(@S1,8,3)
------------------------------------
顯示成果: www
以上例子皆是已知截取地位及長度,上面引見未知地位的例子
2.截取未知地位的函數
A.截取指定字符串後的字符串(例如截取http://前面的字符串)
辦法一:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))
/*此處也能夠如許寫:Select Substring(@S1,CHARINDEX('//',@S1)+2,Len(@S1))*/
------------------------------------
顯示成果: www.163.com
須要留意:CHARINDEX函數搜刮字符串時,不辨別年夜小寫,是以CHARINDEX('www',@S1)也能夠寫成CHARINDEX('WWW',@S1)
辦法二:(與辦法一相似)
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Substring(@S1,PATINDEX('%www%',@S1)+1,Len(@S1))
--此處也能夠如許寫:Select Substring(@S1,PATINDEX('%//%',@S1)+2,Len(@S1))
------------------------------------
顯示成果: www.163.com
函數PATINDEX與CHARINDEX差別在於:前者可以參數一些參數,增長查詢的功效
辦法三:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select REPLACE(@S1,'http://','')
------------------------------------
顯示成果: www.163.com
應用字符調換函數REPLACE,將除須要顯示字符串外的字符調換為空
辦法四:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select STUFF(@S1,CHARINDEX('http://',@S1),Len('http://'),'')
------------------------------------
顯示成果: www.163.com
函數STUFF與REPLACE差別在於:前者可以指定調換規模,爾後者則是全體規模內調換
B.截取指定字符後的字符串(例如截取C:\Windows\test.txt中文件名)
與A分歧的是,當搜刮對象不是一個時,應用下面的辦法只能搜刮到第一個地位
辦法一:
Declare @S1 varchar(100)
Select @S1='C:\Windows\test.txt'
select right(@S1,charindex('\',REVERSE(@S1))-1)
-------------------------------------
顯示成果: text.txt
應用函數REVERSE獲得須要截取的字符串長度