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] 式を正しく取得できませんでした。