oracle怎么截取小数,oracle截取小数点后几位

oracle中 取小数部分函数

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

--方法很多的,看你想怎么个实现方法。最好做成函数,通用一点。

oracle 小数保留时可以保留小数位数吗

oracle数值函数 四舍五入:ROUND() 根据参数保留几位小数位,否则不会保留任何小数,且小数位四舍五入

截取小数位:TRUNC()根据参数保留几位小数位,否则不会保留任何小数,小数位不会四舍五入

取模(求余):MOD()

SELECTROUND(789.536) FROM DUAL; //790

SELECTTRUNC(789.536) FROM DUAL; //789

SELECTROUND(789.123,2) FROM DUAL; //789.12

SELECTTRUNC(789.123,2) FROM DUAL; //789.12

SELECT MOD(10,3) FROM DUAL; //10除3的余数

看看能不能帮到你哦

oracle正则表达式截取某个字符前的数字

/*

正则表达式截取第一个%前面的数字(不论整数还是小数),然后用replace将%替换掉,如果要截取第一串数字23473可以将'[0-9\\.\\0-9]+%' 这个%换成‘号’即可

*/

SELECT REPLACE(regexp_substr('这是一串数字23473号这是第二串数字98.65%这是第三串数字245.46%没了','[0-9\\.\\0-9]+%'),'%','') FROM DUAL;

oracle查2个字段相除取2位小数

select round(a/b,2) from table where c='T';

以上SLQ语句为,

从表table中查询符合c字段值为‘T’的值,

并将值a除以b,得到的结果如果包含小数,则保留两位小数点。

函数round(x[,y])介绍:

【功能】返回四舍五入后的值

【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。

【返回】数字

与此函数相近的函数是trunc(x[,y]) ,返回截取后的值,用法同round(x[,y]),只是不四舍五入


当前标题:oracle怎么截取小数,oracle截取小数点后几位
网站链接:http://scyanting.com/article/dseoigs.html