数字格式在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
答
使用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>
你的链接指向TO_CHAR的“从角色而”版本()。对于数字转换,“从数字到字符”版本更合适。特别是因为进一步链接到格式模型:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions181.htm#i79330 – 2009-10-20 10:54:14
@jhartelt:谢谢我更正了链接 – 2009-10-20 12:21:58