oracle中的数字格式

时间:2009-10-20 08:44:32

标签: oracle

我的数字格式有问题。我在使用oracle。 我在数据库中有一个数字字段。但是当我检索它时,我需要被视为浮点数 例如: 在回顾时,现在我得到的结果为200 DR(借记DR,手动给出)。 现在我需要将结果作为200.00 DR得到结果。 我该如何解决这个问题?任何人都可以帮助我吗?

5 个答案:

答案 0 :(得分:3)

您可以使用TO_CHAR功能显式格式化数据:

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

TO_CHAR(200.00,'FM999G999G990D
------------------------------
200.00

答案 1 :(得分:2)

像这样使用TO_CHAR:

to_char(number,'999999.99')

例如:

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

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

答案 2 :(得分:2)

存在借方意味着需要信贷。在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>

答案 3 :(得分:1)

这里建议TO_CHAR的答案是正确的,但是如果你从应用程序代码中调用这个SQL:

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

答案 4 :(得分:1)

可以将其他字符作为转换的一部分指定,方法是将它们用双引号括起来,这可能会使事情变得更简单:

To_Char(amount,'fm999G999G990D00" DR"')