火鸟查询 – 只有数字

我正在做一个Firebird SQL查询,其中column_type是VARCHAR ,它是关于电话号码。 查询在我的nodeJS应用程序中执行。 数据库有如下结果:

  • 00-234-567
  • 12 / 239-344
  • + 388-13123 / 323
  • 等等

但是我只想要包含数字的格式的结果。 所以只有

123321232

格式可以接受。 我希望结果被查询格式化,而不是在节点js中。 我已经收集了一些关于rtrim的话题,但是现在用trim来代替,这是不允许的呢? 作为数字types的投射可能是一个最终的失败。 这将是一个有效的解决scheme?

编辑:我发现了一些信息,但我还不确定这是否有效。 查询:

CASE WHEN S.TELEFON SIMILAR TO '[0-9]+' THEN CAST(S.TELEFON AS INTEGER) ELSE '' END AS PHONE 

我想你可以使用REPLACE函数来replace所有非空string的数字:

 select replace( replace( replace(S.TELEFON, ' ', ''), -- space '-', ''), '/', '') AS phone from mytab S 

这是丑陋的,只有当你需要摆脱(和你事先知道的)不同人物的数量有限。

Interesting Posts