从SQL中的字符字段中提取数字

从SQL中的字符字段中提取数字,sql,db2,alias,squirrel-sql,Sql,Db2,Alias,Squirrel Sql,我使用squirrelsqlv3.7使用INSERT-INTO命令将数据从一个数据库中的列移动到另一个数据库中的列 我要移动的字段是允许打开条目的电话号码的字符字段。 但是,接收字段应忽略所有字母和符号,仅输入格式 有没有一个简单的方法可以做到这一点?我看到的其他解决方案非常复杂 在提取数据时尝试此操作,或在插入数据时仅尝试转换: select translate('+ 4854 BBBB cCc 12','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq

我使用squirrelsqlv3.7使用INSERT-INTO命令将数据从一个数据库中的列移动到另一个数据库中的列

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


有没有一个简单的方法可以做到这一点?我看到的其他解决方案非常复杂

在提取数据时尝试此操作,或在插入数据时仅尝试转换:

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

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

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

您是从DB2中提取数据并插入到DB2中吗?你能处理源数据库的替换吗?我首先想到的是正则表达式。我想你可能把from和to字符串弄混了。对于所有字母和符号的域来说,这似乎是不完整的,除了那些,也许恰当地描述为,以美国为中心的。没有数字的十六进制代码点规范将是相当完整的;可能是过度的,这取决于编码方案。