如何用sql 語句擷取兩個固定字元之間的字串

時間 2021-10-14 22:23:54

1樓:匿名使用者

select substring(字串,1,patindex(<'%字串%'>,'丘')-1) as 字元1 ,substring(字串,patindex(<'%字串%'>,'丘')+1,patindex(<'%字串%'>,'棟')-patindex(<'%字串%'>,'丘')+1) as 字元2 from 表名

2樓:du瓶邪

一、用到的函式: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

3樓:支崖靜

select substring('1丘2棟',0,charindex('丘', '1丘2棟')),substring('1丘2棟',charindex('丘', '1丘2棟') + 1,len('1丘2棟')-2)

sql server 如何擷取一個字串中第2個'-'後面的字元

4樓:司馬刀劍

sql語句可以擷取指定欄位後面的字串,以sqlserver為例,需要用到charindex函式和substring函式。

如test表中有如下資料,要求截圖str欄位中逗號後邊的內容。

可用如下語句:

1select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;

結果截圖:

charindex函式說明:

語法:charindex ( expression1 , expression2 , [ start_location ] )

引數:expression1

一個表示式,其中包含要尋找的字元的次序。expression1 是一個短字元資料型別分類的表示式。

expression2

一個表示式,通常是一個用於搜尋指定序列的列。expression2 屬於字串資料型別分類。

start_location

在 expression2 中搜尋 expression1 時的起始字元位置。如果沒有給定 start_location,而是一個負數或零,則將從 expression2 的起始位置開始搜尋。

substring函式說明:

語法:substring( expression, start, length)

引數:expression 字串、二進位制字串、文字、影象、列或包含列的表示式start 整數或可以隱式轉換為 int 的表示式,指定子字串的開始位置length 整數或可以隱式轉換為 int 的表示式,指定子字串的長度

利用sql語句如何獲得兩個日期之間相差的天數

大野瘦子 用sysdate假設結束日期欄位是end date 新增這個判斷條件 where to char end date yyyy to char sysdate,yyyy 判斷年相同 and to char end date mm to char sysdate,mm 判斷月相同 and to...

如何用matlab求兩個函式的卷積

雙槍老椰子 function convolution t 4 0.001 4 e rectpuls t 0.25,1.5 plot t,e pause h tripuls t 1,2,1 plot t,h pause s 8 0.001 8 f conv e,h plot s,f 卷積後訊號就變長了...

微控制器中兩個for語句是如何執行的

寒冬為雪 這兩個for語句相同。是起一個延時的作用,最初i 0,i 0 30000,繼續執行,i 即i自加1為i 1,然後i 1,i 1 300000,繼續執行i 直到i 30000跳出for語句,這個過程微控制器執行需要時間,就起到了一個延時的作用。 懂你的大佬 揭靈韻 這個很重要,第一,如果是編...