SQL在字符串中取出最长数字子序列
CREATE FUNCTION dbo.GetJZZH(@StrJZZH nvarchar(200))
RETURNS
nvarchar(100) AS
BEGIN
--声明变量
--函数返回值
declare @iRet nvarchar(100)
--循环用的变量
declare @i
int
--记录字符串长度
declare @LenStr int
--记录字符串中当前字符
declare @CurStr varchar(1)
--初始化函数返回值
set @iRet=‘‘
--如果字符串里没有数字,直接返回
if
PATINDEX(‘%[0-9]%‘,@StrJZZH)=0
goto ext
--变量初始化
select @LenStr=len(@StrJZZH),@i=1
while @i<=@LenStr
begin
set @CurStr=substring(@StrJZZH,@i,1)
--如果是数字或者x
if ((@CurStr>=‘0‘) and (@CurStr<=‘9‘)) or
(@CurStr=‘x‘) or (@CurStr=‘X‘)
begin
--数字就记录下来
set @iRet=@iRet+@CurStr
end
--出现的是字母
else
begin
if
len(@iRet)>6
begin
goto
ext
end
else
begin
set @iRet=‘‘
end
end
set @i=@i+1
-- while循环结尾end
end
ext:
return @iRet
END;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。