我有一列字母数字 ID,我们称之为 [IDS]。
ID 只能是数字,但其中一些包含杂散字符。
例如:
[IDS]
- 012345A
- 23456789AF
- 789789
我只想将它们转换为数字 - 所以输出将是:
[IDS]
012345
23456789
789789
我想编写一些代码来在列中搜索字母表 (A-Z) 中的所有字母并删除它们,以便提取数值。
我知道我可以进行替换(替换(替换(....等),但对于字母表中的所有 26 个字母,这并不理想。
我现在尝试使用“声明@”来解决它,但这些似乎是为特定字符串设计的,我希望搜索和替换整个列。
使用 Microsoft SQL Server。
谢谢
最佳答案
CREATE TABLE #Table11
([IDS] varchar(10))
;
INSERT INTO #Table11
([IDS])
VALUES
('012345A'),
('23456789AF'),
('789789')
;
SELECT SUBSTRING([IDS], PATINDEX('%[0-9]%', [IDS]), PATINDEX('%[0-9][^0-9]%', [IDS] + 't') - PATINDEX('%[0-9]%',
[IDS]) + 1) AS IDS
FROM #Table11
输出
IDS
012345
23456789
789789
关于sql - 如何在 MS sql server 上的列中查找和删除字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52274318/