MSSQL中擷取特定的字串

2021-08-26 13:06:06 字數 1082 閱讀 9784

上午遇到乙個需求,需要在資料庫中擷取乙個字串的特定部分:

假設乙個字串是郵箱位址

[email protected]

」,最後取到的字串應該是「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...