程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL截取字符串函數分享

SQL截取字符串函數分享

編輯:MSSQL

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獲得須要截取的字符串長度
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved