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)
我正在尝试 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)