2012-03-02 81 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是你唯一的選擇。