SSMS SQL Return 第一次找到特定字符串后只有几个字符

SSMS SQL Return only a few characters after a specific string is found the first time

我正在尝试 return 在列中第一次找到特定字符串后仅 9 个字符(或总金额)。

示例输入 1:"The amount you currently owe is ,000.00 The amount you do not owe is ,000.00"

示例输入 2:"The amount you currently owe is [=29=].00 The amount you do not owe is [=29=].00"

Example Data

示例输出 1:$5,000.00 示例输出 2:$0.00

Example Output

谢谢!

根据所提供的最少信息,我猜这就是您正在查看的内容。

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is .00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is .00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is 0.00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is ,000.00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is ,000.00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is 0,000.00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)

DECLARE @Desc VARCHAR(100) = 'The amount you currently owe is ,000,000.00 The amount you do not owe is ,000.00'

 SELECT SUBSTRING(@Desc, PATINDEX('%$%', @Desc), ABS(CHARINDEX(N'.', @Desc, CHARINDEX(N'$', @Desc, 1)) - CHARINDEX(N'$', @Desc, 1)) + 3)