我需要在SQL表中选择此(00-00066)并在转换后得到(0000066)
就像>>>>>
一样declare @v1 varchar(21) = '00-00066', --- I need ignore this character '-'
@v2 varchar(21) = '000 - 66 ',
@v3 varchar(21) = '00-66' + char(13) + char(10),
@v4 varchar(21) = char(9) + '66000-00'
select cast(@ v1 as int) - 错误 select cast(@ v2 as int) - 错误 select cast(@ v3 as int) - 错误 select cast(@ v4 as int) - 错误
答案 0 :(得分:1)
DigitsOnlyEE专为此问题而开发,并且比我见过的任何函数都快。您只需要从提供的链接中获取代码即可创建它。
以下是一个如何运作的简单示例:
SELECT DigitsOnly FROM dbo.DigitsOnlyEE('000 - 66 ');
结果:
00066
对表使用:
-- sample data
DECLARE @table TABLE (oldString varchar(100));
INSERT @table VALUES ('00-00066'),('000 - 66 '),
('00-66' + char(13) + char(10)), (char(9) + '66000-00');
-- solution
SELECT oldString, DigitsOnly
FROM @table
CROSS APPLY dbo.DigitsOnlyEE(oldString);
结果: