Firebird查询 - 仅限数字

时间:2015-04-13 11:35:12

标签: node.js firebird phone-number

我正在进行Firebird SQL查询,其中column_type为 VARCHAR ,并且它与电话号码有关。查询正在我的 nodeJS 应用程序中执行。数据库的结果如下:

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

但我希望结果采用仅包含数字的格式。所以只有

  

123321232

格式可以接受。我希望结果由查询格式化,而不是在节点js中。我已经开始讨论关于 rtrim 的一些话题了,但现在它已经被修饰取代了哪个不允许这样做?作为数字类型进行转换可能是最终的失败。这里有什么有效的解决方案?

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

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

1 个答案:

答案 0 :(得分:2)

我猜您可以使用REPLACE函数将所有非数字替换为空字符串:

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

它很丑陋,只有当你需要摆脱不同数量的不同角色(以及你事先知道的)时才有效。