字符串拆分之公式分解

/*

-- 邹建
    分解公式
    将公式按运算分解到表中
*/
declare @str varchar(100)
declare @i int,@str1 varchar(10),@str2 varchar(10)

set @str='3+7+12-13+8-9*123'    --要分解的字符串
declare @tb table(num varchar(20),operation varchar(2))    --定义保存结果的表

--公式分拆
set @i=patindex('%[^0-9]%',@str)
while @i>0
begin
   
select @str1=left(@str,@i-1)
        ,
@str=substring(@str,@i,8000)
        ,
@i=patindex('%[0-9]%',@str)
        ,
@str2=left(@str,@i-1)
        ,
@str=substring(@str,@i,8000)
        ,
@i=patindex('%[^0-9]%',@str)
   
insert into @tb values(@str1,@str2)
end
if @str<>'' insert into @tb values(@str,'')

--显示分拆结果
select * from @tb

 

/*

num                  operation
-------------------- ---------
3                    +
7                    +
12                   -
13                   +
8                    -
9                    *
123                 

(7 行受影响)

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值