我想要数据0.567 输出0.56,使用下面的sql语句,
select cast(0.567 as decimal(10,2)) from dual
可是结果却是 .56
整数位的0没有被输出。
请问,这个怎么解决?
select cast(0.567 as decimal(10,2)) from dual
可是结果却是 .56
整数位的0没有被输出。
请问,这个怎么解决?
如果想输出整数位的0,那么有两种方法:
1. 修改客户端对数值的显示格式,如何修改取决于你使用的客户端。
2. 强制将结果转换成字符串格式
select to_char(cast(0.567 as decimal(10,2)),'0.00') from dual
select to_char(cast(0.567 as decimal(10,2)),'0.00') from dual
----------
.57scott@TBWORA> col ca for 9990.99
scott@TBWORA> select cast(0.567 as decimal(10,2)) as ca from dual; CA
--------
0.57scott@TBWORA> -- 要不就直接用 to_char()函数来指定输出的格式,例如:
scott@TBWORA> select to_char(cast(0.567 as decimal(10,2)),'9999990D99') as ca from dual;CA
----------------------
0.57
那么差出来的结果就变成####了。
select round(0.567,2) from dual;--四舍五入 结果是0.57select trunc(0.567,2) from dual;--结果是0.56
select trim(to_char(0.265,'99999990D99')) from dual
想问问,就没有更简便的方法吗?最好别像这样嵌套了两层函数。
-- trim 也不需要啦,因为你 to_char()里已经指定了格式:99999990D99 (D后面两个9,表示保留两位小数)sys@TBWORA> select trim(to_char(0.265,'99999990D99')) from dual;TRIM(TO_CHAR(0.265,'9999
------------------------
0.27sys@TBWORA> select to_char(0.265,'99999990D99') from dual;TO_CHAR(0.265,'99999990D
------------------------
0.27
加trim是为了去掉前面的空格,不加的话,前面会有好几个空格的。
sqlplus:set numformat 99990.99plsql developer: tool>>preference>>sql window>> number fields to char 去掉
select cast(0.567 as decimal(10,3)) from dual
所以我才不得不在SQL上改进。
select to_char(0.269,'FM99,990.99') from dual