mysql如何截取字符串中前面的数字_sql如何截取字符串中前面的数字
展開全部
如果提取字符串中的數(shù)32313133353236313431303231363533e58685e5aeb931333337613930字,需要自定義函數(shù),以下函數(shù)包含截取字符串中的數(shù)字、字母、漢字等。create?function?fn_myget
(@str?as?varchar(max),
@category?as?varchar(10)='Chinese',
@start?as?int=1,
@end?as?int=100000)
returns?varchar(max)
as
begin
declare?@i?int=@start
declare?@lenstr?int=len(@str)
declare?@str1?varchar(max)
declare?@strre?varchar(max)=''
while?@i<=@lenstr?and?@i<=@end
begin
set?@str1=substring(@str,@i,1);
--提取漢字
if(@Category='Chinese')
begin
if(len(@str1)!=datalength(@str1))
set?@strre=@strre+@str1
end
--提取字母
else?if(@Category='Letters')
begin
if((ascii(@str1)>=65?and?ascii(@str1)<=90?or?ascii(@str1)>=97?and?ascii(@str1)<=122))
set?@strre=@strre+@str1
end
--提取數(shù)字
else?if(@Category='Digital')
begin
if(ascii(@str1)>=48?and?ascii(@str1)<=57)
set?@strre=@strre+@str1
end
else
set?@strre='輸入錯誤'
set?@i=@i+1
end
return(@strre)
end
測試:
1、截取字符串dsajf23423423中的數(shù)字select?dbo.fn_myget('dsajf23423423','Digital',1,1000)
結(jié)果:
2、截取字符串dsajf23423423中的字母select?dbo.fn_myget('dsajf23423423','Letters',1,1000)
結(jié)果:
3、截取“說多了幾分134lljjf愛”中的中文select?dbo.fn_myget('說多了幾分134lljjf愛','Chinese',1,1000)
結(jié)果:
自定義函數(shù)說明:
函數(shù)共需要4個參數(shù):
第一個參數(shù)是要截取的字符串;
第二個參數(shù)根據(jù)要截取的內(nèi)容不同,分別有“Digital”(截取數(shù)字)、“Letters”(截取字母)、“Chinese”(截取中文);
第三個參數(shù)代表截取的起始位;
第四個參數(shù)代表截取的截取的結(jié)束位。
總結(jié)
以上是生活随笔為你收集整理的mysql如何截取字符串中前面的数字_sql如何截取字符串中前面的数字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenMV 初识
- 下一篇: mysql update分割字符串_my