我有这个查询我试图让工作,可以从字符串中提取十进制数,所以他们是他们自己的列。目标是然后比较值是订购他们,所以他们也将需要转换为十进制(获取数字的字符串是主要问题虽然)从字符串中选择数字
我使用的示例是与字符串“ OrdRevenuePay 3200.00 - > 2836.07,OrdRate 3200.00 - > 2836.07“
我需要将每个字符串中的数字作为自己的列。我到目前为止能够选择第一个值,但第二个值也返回其他部分。这是查询我一直使用至今:
DECLARE @str VARCHAR(128)
SET @str = 'OrdRevenuePay 3200.00 -> 2836.07, OrdRate 3200.00 -> 2836.07'
SELECT SUBSTRING(@str,CHARINDEX(' ',@str)+1,CHARINDEX('->',@str)-CHARINDEX(' ',@str)-1) as col1
, SUBSTRING(@str,CHARINDEX('->',@str,1)+2,LEN(@str)-CHARINDEX(', OrdRate',@str,1)-1) as col2
请加样输出和输入 – TheGameiswar
有什么可预测的关于输入字符串,例如总是有四个十进制值,它们之间有某种标点符号,或者它可以是任何东西? – HABO
这些值可以从4位(包括小数)到10位;字符串的格式总是相同的,I.E它始终以“OrdRevenuePay [number1] - > [number2],OrdRate [Number3] - > [Number4]”开头。我希望每个数字都在自己的专栏中。最终目标是查询只返回记录,其中Number1大于Number2,而3大于Number4。 – samalkobi