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