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;