可以通過寫自定義函式實現,以下提供兩種思路來解決:
/*方法一: 乙個乙個找出來*/
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....