我正在尝试使用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')
返回位置24
但我想要值3
。
有人可以协助解决方案吗?
答案 0 :(得分:2)
请尝试:
Select substring(Data, PatIndex('%[0-9]%', Data), 1)
from(
select 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II' as Data
)x
答案 1 :(得分:0)
如果您必须使用patindex功能,并且您的项目说明将永远不会包含其他数字,例如“3”,您可以使用以下内容:
select patindex('%3%', 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II')
这将返回24。
我怀疑您正在查看订购数量始终位于相同位置的字符串。在这种情况下,我会使用substring函数。
答案 2 :(得分:0)
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)
这将返回字符串中的第一个数字。
你正在做的是返回第一个数字的位置,我的代码将返回该位置的值。