有如下一段SQL语句:
select
nvl(a.boss_amount,0) as boss_amount,
nvl(b.check_amount,0) as check_amount,
nvl(c.checkok_amount,0) as checkok_amount
TO_CHAR(nvl(round(b.check_amount/a.boss_amount*100,2),'0.00'))||'%' as checkrate
from ......其中:a,b,c是from后面子查询的结果, 现在的问题是如果b.check_amount/a.boss_amount*100仍然小于1,其实我是想在页面显示诸如0.53%, 0.87%之类的格式,现在的问题是页面只显示.53%,.87%之类的格式,也就是小数点前面的0被剔除了,请问大家这段SQL语句应该怎么改?谢谢大家!
select
nvl(a.boss_amount,0) as boss_amount,
nvl(b.check_amount,0) as check_amount,
nvl(c.checkok_amount,0) as checkok_amount
TO_CHAR(nvl(round(b.check_amount/a.boss_amount*100,2),'0.00'))||'%' as checkrate
from ......其中:a,b,c是from后面子查询的结果, 现在的问题是如果b.check_amount/a.boss_amount*100仍然小于1,其实我是想在页面显示诸如0.53%, 0.87%之类的格式,现在的问题是页面只显示.53%,.87%之类的格式,也就是小数点前面的0被剔除了,请问大家这段SQL语句应该怎么改?谢谢大家!
解决方案 »
- 做回退到旧数据库副本的不完全恢复问题。
- 仓库进出库系统数据库设计
- 请教一句sql,把每个id对应的最大created日期的记录筛选出来。
- oracle数据库同时导给两个数据库用户
- Oracle 数据库 (OLE DB) 不支持关键字: “provider”的问题
- Linux ES4 下 Oracle9i 装后,如何让系统启动时,自动运行.
- 请问在Oracle中如何实现Case when then 中存放表结果?
- 高手大大门快来帮我看看 !oracle菜鸟求教!急急急!+++++++++++++++++++++++++++=
- pl/sql语句问题
- 帮忙看看,这段sql那里错了
- 关于一个比较复杂的行列互换的问题!oracle的PL/SQL
- 请问为什么这个查询会没有结果呢?
SQL> select to_char(0.34, '90.99') from dual
2 ;TO_CHA
------
0.34SQL>
90.99或FM90.99是oracle格式化数据的格式,如果想扩大位数的话可以使用990.999... 这是oracle规定的方式
SQL> select to_char(0, '90.99') from dual;TO_CHA
------
0.00SQL> select to_char(0, '90.99')||'%' from dual;TO_CHAR
-------
0.00%楼主尝试一下再说,不可能出现90.99%
6楼robinhood1214的解决方式是我想要的结果,同时也谢谢大家都热情回复!