SQL拆分多规则的字符串分离数字。

--拆分多规则字符串
DECLARE @Codes NVARCHAR(MAX)
SET @Codes = '6*BC-007,*BC-016,9*BC-015'
 --对于*BC-015这种情况,则Qty设置为1
SELECT  *
FROM    dbo.fun_split(@Codes, ',')

SELECT  (CASE WHEN CHARINDEX('*', sp.SplitValue) > 0
              THEN SUBSTRING(sp.SplitValue, CHARINDEX('*', sp.SplitValue) + 1,
                             LEN(sp.SplitValue) - CHARINDEX('*', sp.SplitValue))
              ELSE sp.SplitValue
         END) AS 'Code' ,
        (CASE WHEN CHARINDEX('*', sp.SplitValue) > = 2
              THEN SUBSTRING(sp.SplitValue, 1,
                             CHARINDEX('*', sp.SplitValue) - 1)
              ELSE 1
         END) AS 'Qty'
FROM    dbo.fun_split(@Codes, ',') AS sp
       
       
--SELECT  SUBSTRING('8*BC-015', CHARINDEX('*', '8*BC-015') + 1,
--                  LEN('8*BC-015') - CHARINDEX('*', '8*BC-015'))
       

--SELECT CHARINDEX('*','*BC-016') --返回是1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值