sql語句,能夠擷取指定欄位後面的字串嗎

時間 2021-10-14 22:25:42

1樓:東方小廚師

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

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

可用如下語句:

select 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 的表示式,指定子字串的長度

2樓:匿名使用者

--這個查詢需要注意的是qwer後的需要查詢的字串必須是一個空格,不能有的是一個空格有的是兩個。也就是格式要固定。

--定義引數

create table #a (string varchar(max))

declare @sql varchar(max)

declare @a varchar(max)

select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--這個是要查詢的字串

while charindex('qwer',@a)<>0

begin

select @a=substring ( @a,charindex('qwer',@a)+5,len(@a)-charindex('qwer',@a)-4)

insert into #a values (@a)

endselect substring (ltrim ( string) ,1,charindex(' ',ltrim ( string))) as result from #a

--查詢結果

result

zxcv

yuchor

abcd

3樓:匿名使用者

能實現的,這個又不難,你用什麼資料庫的,每個資料庫的sql語法是不一樣的,函式也是不一樣的

4樓:匿名使用者

如果 是 「asdf qwer qwer qwer qwer zxcv 1234 的模式的話:

select trim(substring_index(substring_index(「asdf qwer zxcv 1234","qwer",-1)," ",2))

5樓:匿名使用者

charindex

返回字串中指定表示式的起始位置。

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

引數 expression1

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

expression2

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

start_location

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

例如:select charindex( 'you ', 'i love you ')

你利用一下就能實現。至於多個可以迴圈擷取字串。

SQL語句,按資料多少排序,sql 按欄位指定值排序

select a.from tablea a select tableaid,count 1 nb from tableb b group by tableaid bb where a.id bb.tableaidorder by bb.nb 首先需要把b表的兒子輩出現次數統計出來,並按照最大出現次...

SQL語句如何刪除欄位記錄不等於 123456 的所有記錄

1,先查詢記錄,防止誤刪 select from a表 t where t.bb 123456 2,發現時你要刪除的資料後,執行刪除操作delete from a表 t where t.bb 123456 有兩種寫法 一種 delete from a where bb 123456二種 delete...

sql語句怎麼去掉欄位裡值的空格如name阿斯

沙漠之冰 trim name 如果你要把表裡某欄位所有資料的空格都去掉的話。可以執行下面的sql 1 update table1 a set a.欄位 a.trim a.欄位 去掉欄位前面後後面的空格 2 update table1 a set a.欄位 replace a.欄位,去掉欄位所有的空格...