【问题标题】:Extract digits from character field in SQL从SQL中的字符字段中提取数字
【发布时间】:2015-11-25 19:21:03
【问题描述】:

我正在使用 Squirrel SQL v3.7 的 INSERT INTO 命令将数据从一个数据库中的列移动到另一个数据库中的列。

我要移动的字段是允许打开条目的电话号码的字符字段。 但是,接收字段应忽略所有字母和符号,仅以########### 格式输入

有没有简单的方法来做到这一点?我见过的其他解决方案非常复杂。

【问题讨论】:

标签: sql db2 alias squirrel-sql


【解决方案1】:

在提取时试试这个,或者在插入数据时只翻译:

select translate('+ 4854 BBBB cCc 12','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()-=+/\{}[];:.,<>? ',' ') from yourTable;

【讨论】:

  • 我认为您混淆了“from”和“to”字符串。
  • 对于所有字母和符号的领域似乎可能是不完整的,除了那些可能被恰当地描述为以美国为中心的领域。仅没有数字的十六进制代码点规范将非常完整;可能过度,并且将取决于编码方案。
【解决方案2】:

我对 Squirrel sql 不是特别熟悉,但匹配非数字的最简单方法是使用正则表达式。特别是 [^0-9] 将匹配字符串中不是数字的任何内容。我能够在我的系统(ibm iseries)上获得上述结果:

select regexp_replace(column1,'([^0-9])','') from table1

【讨论】:

    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2011-10-13
    • 2022-01-21
    相关资源
    最近更新 更多