2012-03-02 42 views
0

有人可以建议我怎么可以用逗号分隔,而不使用TO_CHAR函数来显示一个数字。 )用逗号分隔数字格式,在Oracle中没有TO_CHAR

NUMBER 3455678.05应显示为3,455,678.05 NUMBER 3455678应显示为3455678

+3

如果你不想或不能使用完美的工具来完成这项工作,你必须给出一个很好的理由。 – 2012-03-02 03:39:22

回答

3

不使用TO_CHAR(,这是不可能的,除非它可以在客户端程序来处理。

例如,在SQL * Plus,你可以这样做:

set numformat 999,999,999,999,999.00 

,但是这不是一个完整的例子,为3455678.05将打印为3,455,678.05,但是,3455678将打印为3,455,678.00。

正确的解决办法是使用TO_CHAR()函数,用设置NLS_TERRITORY和/或NLS_NUMERIC_CHARACTERS正确地格式化输出一起。

希望有所帮助。

+0

其实我认为“正确的解决方案”是让客户端程序处理显示问题,就像你用SQL * Plus例子展示的那样。这是关于*分离的问题*。 – APC 2012-03-02 09:52:25

0

显示格式化的东西应该在你的应用程序或表示层来完成,而不是通过SQL。

如果你坚持做下去,那么马克J. Bobak说,TO_CHAR是你唯一的选择。