我目前正在做一个数据转换项目,需要从字符串中剥离所有字母字符。不幸的是,由于我们不拥有源计算机,因此我无法创建或使用函数,从而使我无法通过搜索以前的帖子找到的方法。
在select语句中执行此操作的最佳方法是什么?速度不是一个太大的问题,因为它只能运行30,000左右左右的记录,而且是一次过的声明。
RichardTheKiwi的脚本中用于无交叉选择的选择中的函数,还添加了点,因为在我的情况下,我将其用于varchar字段中的double和money值
CREATE FUNCTION dbo.ReplaceNonNumericChars (@string VARCHAR(5000)) RETURNS VARCHAR(1000) AS BEGIN SET @string = REPLACE(@string, ',', '.') SET @string = (SELECT SUBSTRING(@string, v.number, 1) FROM master..spt_values v WHERE v.type = 'P' AND v.number BETWEEN 1 AND LEN(@string) AND (SUBSTRING(@string, v.number, 1) LIKE '[0-9]' OR SUBSTRING(@string, v.number, 1) LIKE '[.]') ORDER BY v.number FOR XML PATH('') ) RETURN @string END GO
谢谢RichardTheKiwi +1