我有这样的数据:
string 1: 003Preliminary Examination Plan
string 2: Coordination005
string 3: Balance1000sheet
我期望的输出是
string 1: 003
string 2: 005
string 3: 1000
我想在 SQL 中实现它。
原文由 Avinash Mehta 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有这样的数据:
string 1: 003Preliminary Examination Plan
string 2: Coordination005
string 3: Balance1000sheet
我期望的输出是
string 1: 003
string 2: 005
string 3: 1000
我想在 SQL 中实现它。
原文由 Avinash Mehta 发布,翻译遵循 CC BY-SA 4.0 许可协议
SQL Server 2017 及更高版本的解决方案,使用 TRANSLATE
:
DECLARE @T table (string varchar(50) NOT NULL);
INSERT @T
(string)
VALUES
('003Preliminary Examination Plan'),
('Coordination005'),
('Balance1000sheet');
SELECT
result =
REPLACE(
TRANSLATE(
T.string COLLATE Latin1_General_CI_AI,
'abcdefghijklmnopqrstuvwxyz',
SPACE(26)),
SPACE(1),
SPACE(0))
FROM @T AS T;
输出:
结果003 005 1000
该代码通过以下方式工作:
提供给 TRANSLATE
的字符串可以扩展为包含其他字符。
原文由 Paul White 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先创建这个
UDF
现在使用
function
作为SQL 小提琴
我希望这能解决你的问题。
参考