我正在尝试使用SQL Server 2008 R2中的PATINDEX
函数从字符串中提取值3
Charged Hourly Fee for 3 CR for BCP202DL Personal Development II
但我似乎犯了一个错误。
我试过
SELECT PatIndex('%[0-9]%', 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II')
其返回位置CCD_ 2,但我想要值CCD_。
有人能帮忙解决这个问题吗?
请尝试:
Select substring(Data, PatIndex('%[0-9]%', Data), 1)
from(
select 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II' as Data
)x
declare @str nvarchar (max)
set @str='Charged Hourly Fee for 3 CR for BCP202DL Personal Development II'
Select substring(@str, PatIndex('%[0-9]%', @str), 1)
这将返回字符串中的第一个数字。
您的方法是返回第一个数字的位置,我的代码将返回该位置的值。
如果您必须使用patidix函数,并且您的物品描述永远不会包含其他数字,如"3",您可以使用以下内容:
select patindex('%3%', 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II')
这将返回24。
我怀疑你看到的是一个字符串,其中订购的数量总是在相同的位置。在这种情况下,我将使用子字符串函数。