【问题标题】:SQL Script that removes all non-numeric numbers [duplicate]删除所有非数字数字的 SQL 脚本 [重复]
【发布时间】:2014-11-09 10:52:45
【问题描述】:

我需要一个 SQL 脚本来删除 SQL 表列中每条记录的所有非数字字符。该列用于保存电话号码,数据库中有许多不同的格式,这就是为什么我只希望它更新表格删除所有非数字字符并将其更改为数字。有没有人有一个很好的一次性脚本可以更新表中的所有记录?

编辑:

看起来我真正需要替换的唯一字符是“-”、“(”和“)”

【问题讨论】:

  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?
  • Microsoft SQL Server Management Studio 2012
  • 非数字是指任何不是 0、1、2、3、4、5、6、7、8 或 9 的字符。
  • 除了(、) 和+ 之外,您实际上还有非数字字符吗?除非您想安装 CLR 正则表达式,否则如果我们可以假设特定字符,那么慢速标量 UDF 会更容易!
  • 看来我真正需要替换的唯一字符是“-”、“(”和“)”

标签: sql tsql sql-server-2012


【解决方案1】:

由于您只有几个问题字符,您可以进行嵌套替换。

UPDATE T
SET PhoneNumber = REPLACE(REPLACE(REPLACE(PhoneNumber,'(',''),')',''),'-','')

见REPLACE()

【讨论】:

  • 非常感谢。我会在几分钟内标记
猜你喜欢
  • 2018-01-31
  • 2019-08-10
  • 2016-03-03
  • 2019-04-16
  • 2019-08-21
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多