Oracle 十进制数

Oracle 十进制数,oracle,plsql,Oracle,Plsql,我如何选择十进制的数值,就像12到12.00一样,而不用在oracle中使用to_char?将其转换为数字(9,2)(9是任意的,如果需要,可以使用其他形式),它将是那种形式 但是请注意,一旦将其放入应用程序中,表示就取决于所使用的任何语言。如果它将该数据类型表示为float,那么您将得到一个float,并且它将不再具有您想要的格式。在这种情况下,最好在数字不在数据库中之前不要对其进行格式化。如果使用SQL*Plus,可以通过更改列格式来格式化输出: SQL> desc temp Nam

我如何选择十进制的数值,就像12到12.00一样,而不用在oracle中使用to_char?

将其转换为
数字(9,2)
(9是任意的,如果需要,可以使用其他形式),它将是那种形式


但是请注意,一旦将其放入应用程序中,表示就取决于所使用的任何语言。如果它将该数据类型表示为float,那么您将得到一个float,并且它将不再具有您想要的格式。在这种情况下,最好在数字不在数据库中之前不要对其进行格式化。

如果使用SQL*Plus,可以通过更改列格式来格式化输出:

SQL> desc temp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER
 FIELD1                                             VARCHAR2(100)
 FIELD2                                             VARCHAR2(100)

SQL> select * from temp;

        ID FIELD1     FIELD2
---------- ---------- ----------
         1 hello      yyyy
         2 hello      yyyy

SQL> col id format 999.99
SQL> select * from temp;

     ID FIELD1     FIELD2
------- ---------- ----------
   1.00 hello      yyyy
   2.00 hello      yyyy
您可以使用

Select To_char(ID,'9990.99') from temp
格式设置必须为0。如果您想要
0.00
值(例如:0.10,0.06),则必须将0放入格式中,而不使用0,格式将类似于.00(例如:.10,0.06)。看看这里

没有0

Select To_char(0,'999.99') from Dual
与0

Select To_char(0,'9990.99') from Dual

我不想使用冗长的格式。我可以使用任何转换来获得所需的输出吗?嗨,当我像这样转换数字时,从dual中选择cast('5'作为数字(9,2)),它只给出“5”而不是5.00的输出。@Remya:您缺少数字的存储方式和显示方式。如果需要将其显示为5.00-使用to_char()