找出字符串中所有数字

刚才网友在SKYPE问Insus.NET一个问题,在MS SQL中,怎样找出一个字符串所有数字。

 

Insus.NET使用较简单与平常的方法,就是使用循环的方法,循环字符串中每一个字符,并插入至一个表变量中。然后再SELECT这个表变量,条件中使用了正则表达式来实现。请参考下面完整的SQL语句,还附加上注释。如遇上不明的, 请继续讨论。

DECLARE  @s  NVARCHAR( 100=  ' ADF63  2sadf8w 43r fd 8dj2 '

-- 宣告一个表变量
DECLARE  @t  TABLE ( [ s ]  NVARCHAR( 2NULL
 
-- 宣告两个变量,一个是循环初始变量,另一个是存储字符长度变量
DECLARE  @I  INT  =  1@J  INT  =  LEN( @s)

-- 开始循环
WHILE  @I  <=  @J
BEGIN    

     -- 截取每一个字符并存入表变量中
     INSERT  INTO  @t  SELECT  SUBSTRING( @s@I1)

     -- 每循环一个字符,循环初始变量加1
     SET  @I  =  @I  +  1
END

--  最后是SELECT表变量,条件使用正则
SELECT  [ s ]  FROM  @t  WHERE  [ s ]  LIKE  ' %[0-9]% '

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值