substring
返回字元、
binary
、text
或image
表示式的一部分。有關可與該函式一起使用的有效
microsoft® sql server™
資料型別的更多資訊,請參見資料型別。
語法substring ( expression , start , length )
引數expression
是字串、二進位制字串、
text
、image
、列或包含列的表示式。不要使用包含聚合函式的表示式。
start
是乙個整數,指定子串的開始位置。
length
是乙個整數,指定子串的長度(要返回的字元數或位元組數)。
substring()
——任意位置取子串
left()
right()
——左右兩端取子串
ltrim()
rtrim()
——截斷空格,沒有
trim()
。charindex()
patindex()
——查子串在母串中的位置,沒有返回
0。區別:
patindex
支援萬用字元,
charindex
不支援。
函式功效:
字串擷取函式,只限單位元組字元使用(對於中文的擷取時遇上奇數長度是會出現亂碼,需另行處理),本函式可擷取字串指定範圍內的字元。
應用範圍:
標題、內容擷取
函式格式:
stringsubstr( string string, int start [, int length])引數1
:處理字串引數2
:擷取的起始位置(第乙個字元是從
0開始)引數3
:擷取的字元數量
substr()
更多介紹可在
php官方手冊中查詢(字串處理函式庫)
舉例:
substr("abcdefg", 0); //
返回:abcdefg
,擷取所有字元
substr("abcdefg", 2); //
返回:cdefg
,擷取從
c開始之後所有字元
substr("abcdefg", 0, 3); //
返回:abc
,擷取從a開始
3個字元
substr("abcdefg", 0, 100); //
返回:abcdefg
,100
雖然超出預處理的字串最長度,但不會影響返回結果,系統按預處理字串最大數量返回。
substr("abcdefg", 0, -3); //
返回:efg
,注意引數
-3,為負值時表示從尾部開始算起,字串排列位置不變 例子
: 1.
擷取已知長度的函式
a.
擷取從字串左邊開始
n個字元
declare @s1 varchar(100)
select @s1=''
select left(@s1,4)
------------------------------------
顯示結果
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.163.com
以上例子皆是已知擷取位置及長度
,下面介紹未知位置的例子
2.
擷取未知位置的函式
a.擷取指定字串後的字串
(例如擷取
後面的字串)
方法一:
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
獲取需要擷取的字串長度
substr() 例子
: private void ddl_areabind()
protected void ddl_area_selectedindexchanged(object sender, eventargs e)
查詢祖先節點
select * from
目錄表_
資料庫where id<>-1 and datatype<>1 and datatype<>2 connect by prior fatherid=id start with id=28 order by
目錄級別
,id
查詢子孫節點:
select * from
目錄表_
資料庫where id<>-1 and datatype<>1 and datatype<>2 connect by prior id=fatherid start with id=28 order by
目錄級別
,id
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...
SQL擷取字串
substring 返回字元 binary text 或 image 抒發式的一全體。無關可與當函式一伏運用的無效 microsoft sql server 資料種型的更多疑息,請參睹資料種型。語法 substring expression start length 引數 expression 是字...
SQL擷取字串
substring 返回字元 binary text 或 image 表示式的一部分。有關可與該函式一起使用的有效 microsoft sql server 資料型別的更多資訊,請參見資料型別。語法 substring expression start length 引數 expression 是字...