【问题标题】:how to omit "-" if it exists in a column value如果它存在于列值中,如何省略“-”
【发布时间】:2014-04-04 03:34:08
【问题描述】:

我有一个数据库表,其中包含前缀和电话号码字段,它们是 varchar2,因此用户可以输入电话号码 +1999 999-9999 现在我只需要选择数值并在选择语句中省略 -。所以选择了+号但没有选择-号我该怎么做?我正在阅读 substr ,但这变得令人困惑

【问题讨论】:

  • 您想在结果中显示 + 号而不是 - 号?
  • 所以你想删除“-”字符。但是你想用空格替换每个字符吗?你也想删除空格吗?
  • 我已经尝试过这个 SELECT coalesce(trim(t6.prefix) || '' || replace(trim(t6.phonenumber),'-','')) FROM some_table t6 我得到函数中没有足够的参数

标签: sql oracle select


【解决方案1】:

试试这个:

select replace(phonenumber,'-','') from yourtable

这将从您的选择结果中删除 - 符号,同时保持 + 不变。如果您还想删除 + 号,只需嵌套 replace 函数调用即可。

【讨论】:

  • 我厌倦了这个,但它说这个函数没有足够的参数这是我的代码 SELECT coalesce(trim(t6.prefix) || '' || replace(trim(t6.phonenumber),'- ','')) FROM some_table t6
  • 那是因为当函数至少需要 2 个参数时,您只向函数传递了一个参数。docs.oracle.com/cd/B28359_01/server.111/b28286/…。如果COALESCE 中的表达式为空,你希望这个函数返回什么?那应该是第二个参数。
  • 谢谢我明白了我只是对它应该如何关闭它的顺序感到困惑它对我有用谢谢
猜你喜欢
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
相关资源
最近更新 更多