上午遇到乙個需求,需要在資料庫中擷取乙個字串的特定部分:
假設乙個字串是郵箱位址
」,最後取到的字串應該是「hello」。
因為上面的這個需求,看了一下資料庫中關於字串函式這方面的知識,最終可以得到以下幾種解決的方法:
一、用到的函式:substring(' ', , )、charindex(' ',' ')
select substring(
'[email protected]',1,charindex('@','[email protected]')-1)
1.substring(字串表示式,開始位置,長度 ):
從乙個指定字串的指定位置擷取制定長度的字元;
第乙個引數表示被擷取的字串;
第二個引數表示要在第乙個引數中開始擷取的位置;
第三個引數表示要擷取的長度。
例如:select substring('abc123',1,2) →返回ab
從字串『abc123』的第乙個字元開始擷取,共擷取兩個字元,最後得到『ab』。
2.charindex(字串表示式1,字串表示式2[,整數表示式]):
在字串2中查詢字串1,如果存在返回第乙個匹配的位置,如果不存在返回0。如果字串1和字串2中有乙個是null則返回null。
可以指定在字串2中查詢的起始位置。
例如:select charindex('ab','bcabtabd') →返回3
select charindex('ab','bcabtabd',4) →返回6
二、用到的函式:left(' ', )、charindex(' ',' ')
select left('[email protected]',charindex('@','[email protected]')-1)
1.left(字串表示式,整數表示式):
從字串表示式的最左邊開始擷取整數表示式個字元。
例如:select left('abcdef',3) →返回abc
資料庫這方面的知識,學的時候感覺簡單,也容易理解,但是當學過之後一段時間不用了就會想不起來,這也充分的說明了乙個問題:知識的積累也是乙個重複的過程!
擷取字串中特定字元
string.prototype.trim function function getcontent str index 0 var patt new regexp s var patt s while result patt.exec str null for var i 0 i index i ...
sqlserver擷取特定字串
sqlserver擷取特定字串 最近遇到用sql語句擷取字串的問題,例如字段值為某一格式為 a b c d 或者 a b c 1 截取出第四段字元d,如果為四段式,則擷取,否則返回空 說明 先判斷有多少個 然後分別處理 select case when len teststring len repl...
php 擷取特定字串
1 php 擷取特定字元後面的內容 可以使用函式strripos,獲取乙個字串在另乙個字串中第一次出現的位置。number 1 0 result substr number,strripos number,1 echo result 結果輸出 0 2 php 擷取特定字元前面的內容 可以使用函式st...