【发布时间】:2019-08-06 15:11:01
【问题描述】:
我正在尝试使用子字符串、字符索引和 patindex 的混合从字符串中提取美元值。我似乎可以从所有字符串中提取$###,### 模式,除非它落在字符串的末尾。
这是一些带有测试用例的代码:
CREATE TABLE #TMP
(
string VARCHAR(50)
)
GO
INSERT INTO #TMP
VALUES ('I have $4,000'),
('$44,450is what I have'),
('this $600 is what I have now'),
('$5 cause I am broke'),
('I have $10,000,000,000 '),
('No Money Here')
GO
SELECT
*,
SUBSTRING(string,
CHARINDEX('$', string),
PATINDEX('%[^0-9,]%', SUBSTRING(string, CHARINDEX('$', string) + 1, 80000))) AS Result
FROM
#TMP
DROP TABLE #TMP
GO
结果:
SQL Server 版本:
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)
【问题讨论】:
-
我使用的是 Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 版本
-
你好,我不工作,因为你的 4.000 美元在最后,我认为这是寻找的方式
标签: sql-server regex substring sql-server-2016 patindex