我在这里有一个小问题。使用patindex的字符串变量内部的单独数字
我有这样
1/11
11/1
11/11
111/1
111/11
值我试图分离那些价值,并把它们变成数值变量。 让说,例如,我有numericvar1
和numericvar2
所以在第一串numericvar1
将包含1和numericvar2
将包含11
等。
我已经试过像这样
SET @numericvar1= LEFT(@StrNumHolder, PATINDEX('%[0-9][^0-9]%', @StrNumHolder))
SET @numericvar2= REPLACE(RIGHT(@StrNumHolder, PATINDEX('%[0-9][^0-9]%', @StrNumHolder)),'/','')
在此代码,如果/
前的第一个数字是2位数的我得到了正确的输出。但如果第一个数字是1位数字,下一个数字是2位数字,如1/11
我得到了错误的输出。像这样var1 = 1
和var2 = 1
在我的代码中做错了什么?或者这是不可能的?请帮帮我。
我试了一下,并改变某种代码来达到我的目标。呵呵。无论如何,我认为我可以用这个。 'SET @pos = CHARINDEX('/',@STRNUMHOLDER)'这将表明我的位置,所以在你的选择中,我将它修改为'SELECT @STRNUMHOLDER AS ORIG,LEFT(@STRNUMHOLDER ,@ pos-1)AS NUM1,SUBSTRING(@STRNUMHOLDER,@ pos + 1,99)AS NUM2' – Muj
我做了一个类型错误,同时进行了修正(我颠倒了+和 - ) – etsa