sql - Oracle To_Char函数如果已经是字符串怎么处理

标签 sql oracle formatting to-char

场景:我正在调用一个返回用户输入的字段的函数。该字段通常返回一个数字,如“120000”,然后我使用 to_char 将其转换为“120,000”。

问题:有些用户输入了诸如“120,000”之类的值,这让我在尝试使用 to_char 时出错。如果未找到值,该函数还将返回一个空格 ' '。我之前用 to_number 尝试过一些东西,但我相信 ' ' 有问题。

问题:处理这个问题的最佳方法是什么?检查','的案例陈述?使用 to_number 然后 to_char?

注意:我可以一起破解一个解决方案,我只是想知道处理这个问题的最佳方法是什么。

最佳答案

与其使用 REPLACE,不如使用更强大的 REGEXP_REPLACE 函数。 http://www.orafaq.com/wiki/REGEXP_REPLACE

然后您可以从字符串中删除任何非数字字符,然后再根据需要对其进行格式化。

在你的情况下它会是这样的:

REGEXP_REPLACE(<your field>, '[^0-9]+', '');

这会将所有非数字字符替换为 null,有效地将它们从字符串中移除。

也请参阅此答案: Oracle: Replacing non-numeric chars in a string

关于sql - Oracle To_Char函数如果已经是字符串怎么处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069278/

相关文章:

mysql - 查询重新索引 MySQL 数据库的主键

mysql - 如何将多行合并为一行

sql - oracle中如何总结分钟和秒?

Oracle Apex 19.2 如何更改登录页面上的应用程序图标颜色

oracle - 如何将 Oracle SQLdeveloper 与 HSQL/Hypersonic DB 的 JDBC 驱动程序一起使用

mysql - 不同列的不同值

mysql - Java DB 选择特定行上的特定列

c# - String.Format() 拆分整数值

c# - 如果数字小于 10,则添加 0

Excel VBA 显示带有 Afterupdate 和 Change 事件的货币