sqlserver從字串中提取數字

2021-10-10 04:22:58 字數 1466 閱讀 9559

可以通過寫自定義函式實現,以下提供兩種思路來解決:

/*方法一: 乙個乙個找出來*/

create

function

[dbo]

.[fun_getnumpart]

(@str nvarchar(max)

)returns nvarchar(max)

asbegin

declare

@start

int;

declare

@end

int;

declare

@part nvarchar(max)

set@start

= patindex(

'%[0-9]%'

,@str);

set@end

= patindex(

'%[0-9]%'

,substring(

@str

,@start+1

,len

(@str)-

@start))

;set

@part

= substring(

@str

,@start,1

)while

@end

>

0begin

set@start

=@start

+@end

set@part

=@part

+substring(

@str

,@start,1

)set

@end

= patindex(

'%[0-9]%'

,substring(

@str

,@start+1

,len

(@str)-

@start))

;end

return

@part

;end

;/*方法二:乙個乙個去掉*/

create

function

[dbo]

.[fun_getnumpart]

(@str nvarchar(max)

)returns nvarchar(max)

asbegin

while patindex(

'%[^0-9]%'

,@str

)>

0begin

set@str

=stuff(

@str

,patindex(

'%[^0-9]%'

,@str),

1,'')

--刪掉非數字的字元

endreturn

@str

end

延伸:可以通過將函式中的 『%[0-9]%』 替換成 『%[a-z]%』、』%[吖-做]%』,,改造成找字母、找中文的函式

從字串中提取數字

下面程式將字串中的連續數字提取出來,並存放到一維陣列中。比如說乙個字串 a284twx234 je3432 把 284 234 3432 這3個連續數字提取出來,分別存放到a 0 a 1 a 2 中。include include include int main buf i 0 sscanf bu...

從字串中提取整數

首先說一下我要做的事情 從乙個txt檔案中 存著乙個矩陣 從這個檔案中提取出這個檔案中的整數。矩陣 1 2 3 4 5 6 7 8 0 1 8 7 3 8 2 9 之前用的函式是fgets char fgets char s,int n,file stream 引數 s 字元型指標,指向儲存讀入資料...

shell從字串中提取,替換字元

假設需要提取libgcc 4.8.5 4.h5 64.rpm中的版本號 echo libgcc 4.8.5 4.h5 64.rpm grep eo 0 9 0 9 x86 64 grep 的 o 選項,可以只列印匹配的部分,否則會列印整行 echo libgcc 4.8.5 4.h5.x86 64....