oracle如何去小数 oracle怎样去除小数末尾的0

oracle怎么去小数点后两位SQL SELECT
2 TO_CHAR(123,'9990.00') A,
3 TO_CHAR(5.8,'9990.00') B,
4 TO_CHAR(.46,'9990.00') C
5 FROM
6 dual;
A B C
---------------- ---------------- ----------------
123.00 5.80 0.46
SQL
oracle中 取小数部分函数select 12.23-ceil(12.23) from dual
--结果-0.77
select substr(12.23-floor(12.23),2,10) from dual;
--这个东西做不到通用没什么价值
【oracle如何去小数 oracle怎样去除小数末尾的0】--如果
select substr(12.231111111111111-floor(12.231111111111111),2,10) from dual;
--结果不会是231111111111111,而是2311111111
select ltrim(0.55523-floor(0.55523),'0.') from dual;
--这个比较有代表性
--1
select substr(12.25,instr(12.25,'.') 1,length(12.25)) from dual;
--结果 25
--2
select A.a*power(10,length(A.a)-1) from
(select trunc(12.25333,length(12.25333))-trunc(12.25333,0) a from dual) A
--结果 25333
--方法很多的 , 看你想怎么个实现方法 。最好做成函数,通用一点 。
oracle去掉数字后面的0给你做个试验你就知道了
create table test
(id varchar2(6));
insert into test values ('120000');
insert into test values ('120010');
insert into test values ('120200');
insert into test values ('123000');
insert into test values ('123001');
commit;
执行第一遍:
update test set id=substr(id,1,5) where id like '%0';
commit;
此时结果:
执行第二遍:
update test set id=substr(id,1,4) where id like '%0';
commit;
后边就不举例了 , 也就是语句执行4遍,需要修改里边的参数 。
oracle调整会话不显示小数点这是由于Oracle中存在隐形转换oracle如何去小数,当与字符串进行拼接时自动调用oracle如何去小数了to_char函数oracle如何去小数 , 并且to_char在做转化时,如果oracle如何去小数你不指定格式,它就按它的格式去做转化,结果就把0给转不见了,所以在做转化时要给定格式 。
解决方案
在进行隐形转换之前把小数进行字符串转换后再进行拼接,最终把SQL修改为下面的方式oracle如何去小数:
oracle如何去小数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle怎样去除小数末尾的0、oracle如何去小数的信息别忘了在本站进行查找喔 。

    推荐阅读