场景:我正在调用一个返回用户输入的字段的函数。该字段通常返回一个数字,如“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,有效地将它们从字符串中移除。
关于sql - Oracle To_Char函数如果已经是字符串怎么处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069278/