SQL擷取字串函式

2022-07-28 18:30:27 字數 2129 閱讀 1308

a.擷取從字串左邊開始n個字元

declare @s1 varchar(100)

select @s1=''

select left(@s1,4)

------------------------------------

顯示結果: http

b.擷取從字串右邊開始n個字元(例如取字元www.163.com)

declare @s1 varchar(100)

select @s1=''

select right(@s1,11)  

------------------------------------

顯示結果: www.163.com

c.擷取字串中任意位置及長度(例如取字元www)

declare @s1 varchar(100)

select @s1=''

select substring(@s1,8,3)  

------------------------------------

顯示結果: www 

以上例子皆是已知擷取位置及長度,下面介紹未知位置的例子

2.擷取未知位置的函式

a.擷取指定字串後的字串(例如擷取http://後面的字串)

方法一:

declare @s1 varchar(100)

select @s1=''  

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=''  

select substring(@s1,patindex('%www%',@s1)+1,len(@s1))

--此處也可以這樣寫:select substring(@s1,patindex('%//%',@s1)+2,len(@s1))

------------------------------------

顯示結果: www.163.com   

函式patindex與charindex區別在於:前者可以引數一些引數,增加查詢的功能

方法三:

顯示結果: www.163.com

利用字元替換函式replace,將除需要顯示字串外的字元替換為空

方法四:

顯示結果: 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獲取需要擷取的字串長度

SQL擷取字串函式

a.擷取從字串左邊開始n個字元 以下是 片段 declare s1 varchar 100 select s1 select left s1,4 顯示結果 http b.擷取從字串右邊開始n個字元 例如取字元www.163.com 以下是 片段 declare s1 varchar 100 sele...

SQL擷取字串函式

這裡介紹三種擷取函式。left string,length 函式 從字串string中,從第乙個字元開始,自左向右,擷取長度為length的子串。舉個例子,string為 abcdefg length為3,那麼擷取的子串就是 abc 了。right string,length 函式 與上面函式類似,...

sql 擷取字串

sql 擷取字串 a.擷取從字串左邊開始n個字元 declare s1 varchar 100 select s1 select left s1,4 顯示結果 http b.擷取從字串右邊開始n個字元 例如取字元www.163.com declare s1 varchar 100 select s1...