Oracle SQL-如何显示2位小数
请帮我显示一个长度未知的数字,小数点后2位。 例子: 如果号码是230000,那么我需要将其打印为230000.00 我试过了Oracle SQL-如何显示2位小数,sql,oracle,decimal,number-formatting,Sql,Oracle,Decimal,Number Formatting,请帮我显示一个长度未知的数字,小数点后2位。 例子: 如果号码是230000,那么我需要将其打印为230000.00 我试过了 Select to_char(amount, 'FM99999999.90') as amt from customer; 使用concat如下: select concat(amount, '.00') from customer 格式化通常是前端的“问题”;每一个像样的工具(无论是Oracle Apex、报表、表单、Jasper报表等等)都有一个选项,可以根据需
Select to_char(amount, 'FM99999999.90') as amt from customer;
使用
concat
如下:
select concat(amount, '.00') from customer
格式化通常是前端的“问题”;每一个像样的工具(无论是Oracle Apex、报表、表单、Jasper报表等等)都有一个选项,可以根据需要格式化数字。为什么?使这些值保持为数字,以便能够对其应用例如
求和
函数或任何您可能需要的函数
在SQL*Plus(或类似的GUI工具)中,格式化是通过TO_CHAR
函数和所需的格式掩码完成的。如果需要两个小数和(例如)千分隔符,可以执行以下操作:
SQL> with customer (amount) as
2 (select 230000 from dual union all
3 select 3.14 from dual union all
4 select 0.0002 from dual union all
5 select 25.123 from dual
6 )
7 select amount,
8 to_char(amount, 'fm999g999g990d00') new_amount,
9 lpad(to_char(amount, 'fm999g999g990d00'), 10, ' ') new_amount2
10 from customer;
AMOUNT NEW_AMOUNT NEW_AMOUNT2
---------- --------------- ----------------------------------------
230000 230.000,00 230.000,00
3,14 3,14 3,14
,0002 0,00 0,00
25,123 25,12 25,12
SQL>
- 请注意,新值具有…
格式掩码,可确保在小数点周围实际看到零0d00
- 使用
和G
表示千组和小数,而不是逗号和点D
,传统上,已经应用了new\u amount2
,因此值是右对齐的。我假设这些值的最大长度为10(您应该知道得更清楚)lpad
如果您确实使用SQL*Plus(现在非常少见),您甚至可以使用它的
setnumformat
命令,这样就不需要进行额外的修改;您只需选择您拥有的:
SQL> set numformat 999g990d00
SQL>
SQL> with customer (amount) as
2 (select 230000 from dual union all
3 select 3.14 from dual union all
4 select 0.0002 from dual union all
5 select 25.123 from dual
6 )
7 select amount
8 from customer;
AMOUNT
-----------
230.000,00
3,14
0,00
25,12
SQL>
LPAD和RPAD应该完成嵌套在
to_number
函数中的技巧。假设是Oracle数据库。请添加相关的RDBMS标记(MySQL、PostgreSQL等)以获得相关的解决方案。为什么不添加更多的9?我厌倦了那个逻辑(),有了它,你们可以在表中插入‘不真实’的大数字,仍然可以工作。