【发布时间】:2009-03-10 14:29:16
【问题描述】:
我正在尝试找到从 SQL 中的 varchar 中删除非数字数据的最佳方法,例如
'(082) 000-0000' to '0820000000' or
'+2782 000 0000' to '0820000000'
困难在于我并不总是确定会出现什么数字格式,如上所示,所以我希望本质上不是数字的所有内容都被删除。
更新:
从你们所说的来看,这是一个小高潮:
declare @Num varchar(20)
set @Num = ' + (82) 468 6152 '
--strip nonnumrical data out of @num
print @Num
set @Num = replace(@Num, ' ', '')
set @Num = replace(@Num, '+', '')
set @Num = replace(@Num, '-', '')
set @Num = replace(@Num, '(', '')
set @Num = replace(@Num, ')', '')
print @Num
但无法正确获取替换 [^0-9] 表达式。
【问题讨论】:
-
啊,另一个南非人(或至少与南非打交道的人)发现了 SO :)
-
对不起伙计们,是的,我一直在使用 MS SQL ;)
标签: sql sql-server tsql numbers