oracle中 取小数部分函数

来源:百度知道 编辑:UC知道 时间:2024/07/07 06:26:42
oracle中 给定一个数 取出小数部分 如:12.23 如何取出 23
不要小数点

select 12.23-ceil(12.23) from dual
--结果 -0.77
select substr(12.23-floor(12.23),2,10) from dual;
--这个东西做不到通用没什么价值
--如果
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
--方法很多的,看你想怎么个实现方法。最好做成函数,通用一点。

select substr(12.23-floor(12.23),2,10) from dual;
优化的算法
select ltrim(12.55523-floor(12.55523),'0.') from dual;

select 12.23-trunc(12.23) from dual; --0.23
select ltrim(12.23-trunc(12.23),'0.') from dual; --23

select A.a*power(10,length(A.a)-1) from
(select trunc(12.25,length(12.25))-trunc(