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;
复制代码

 

posted on   癫狂编程  阅读(332)  评论(0编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2019-04-28 sql: 查找约束
2019-04-28 delphi Ctrl+鼠标左键或者Find Declaration不能定位到源文件
2019-04-28 delphi7 编译的程序在win7下请求获得管理员权限的方法
2019-04-28 delphi ehLib 安装包下载及安装方法
2019-04-28 DELPHI中build和compile有什么区别?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
好的代码像粥一样,都是用时间熬出来的
点击右上角即可分享
微信分享提示