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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。