数字格式在oracle

数字格式在oracle

问题描述:

Hai,数字格式在oracle

我有一个数字format.i'm使用oracle的问题。 我有一个在数据库中的数字字段。但是当我检索它时,我需要看作浮点数 例如: 而retreiveing,现在我得到的结果为200 DR(借方DR,它是手动给出)。 现在我需要得到结果为200.00 DR作为结果。 我该如何解决这个问题?任何人都可以帮助我吗?

可以使用TO_CHAR功能明确地格式化数据:

SQL> SELECT to_char(200.00, 'fm999G999G990D00') FROM dual; 

TO_CHAR(200.00,'FM999G999G990D 
------------------------------ 
200.00 
+0

你的链接指向TO_CHAR的“从角色而”版本()。对于数字转换,“从数字到字符”版本更合适。特别是因为进一步链接到格式模型:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions181.htm#i79330 – 2009-10-20 10:54:14

+0

@jhartelt:谢谢我更正了链接 – 2009-10-20 12:21:58

使用TO_CHAR这样的:

to_char(number,'999999.99') 

例如:这里

SQL> select to_char(1234.5678,'999999.99')||' DR' as display from dual; 

DISPLAY 
------------- 
    1234.57 DR 

的答案,暗示TO_CHAR是正确的,但是如果您从应用程序代码中调用此SQL:

获取未使用SQL格式化的数字,然后使用编程语言对其进行格式化。例如,在Java中,使用DecimalFormat类。换句话说,为特定于应用程序的代码保留格式,而不是SQL。

其他字符,用双引号括起来指定作为转换的一部分,这可能让事情变得更简单:

To_Char(amount,'fm999G999G990D00" DR"') 

借记的存在意味着对信贷的需求。在Oracle SQL我们可以使用SIGN()函数来告诉一个数是正数还是负数?

SQL> select to_char(abs(amt), 'fm999g999d00')||' ' 
    2    ||case when sign(amt) = -1 then 'DR' else 'CR' end as fmt_amt 
    3 from transactions 
    4 order by txn_ts, txn_id 
    5/

FMT_AMT 
-------------- 
200.00 CR 
200.00 DR 
788.67 CR 
788.67 DR 

SQL>