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;