0

我正在尝试使用PATINDEXSQL Server 2008 R2 中的函数从字符串中提取值 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

有人可以协助解决吗?

4

3 回答 3

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
于 2013-03-20T12:12:29.080 回答
0

如果您必须使用 patindex 函数,并且您的商品描述永远不会包含其他数字,例如“3”,您可以使用以下内容:

select patindex('%3%', 'Charged Hourly Fee for 3 CR for BCP202DL Personal Development II')

这将返回 24。

我怀疑您正在查看一个字符串,其中订购的数量始终位于同一位置。在这种情况下,我会使用 substring 函数。

于 2013-03-20T12:20:40.527 回答
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)

这将返回字符串中的第一个数字。

您正在做的方式是返回第一个数字的位置,我的代码将返回该位置的值。

于 2013-03-20T12:46:33.590 回答