oracle中关于处理小数点位数的几个函数,取小数位数及转换为货币格式

本文介绍了Oracle数据库中处理小数点位数的几种函数,包括四舍五入(round)、截断(trunc)、取整(ceil/floor)、货币格式转换以及COALESCE函数的使用示例。通过实例展示了如何进行数值精确操作和数据整合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.四舍五入,取小数点后n位
select round(1.2345,3) from dual;
结果:1.235

2.保留两位小数,只舍
select  trunc(1.2345,2) from dual;
select  trunc(1.2399,2) from dual;
结果:1.23  1.23

3.取整数
返回大于或等于x的最大整数
select ceil(23.33) from dual;
结果: 24
select floor(23.33) from dual;
结果:23

返回舍入到小数点右边y位的x的值
select round(23.5) from dual;
select round(23.4) from dual;
select round(23.123,2) from dual;
select round(23.125,2) from dual;
结果:24 23 23.12   23.13

返回x截尾到y位小数的值
select trunc(23.33) from dual;
select trunc(23.53) from dual;
select trunc(23.1235,3) from dual;
select trunc(23.1235,2) from dual;
结果:23 23  23.123  23.12

4货币格式(以.00结尾
)

select decode(1000000,0,'0.00',trim(to_char(1000000,'99,999,999,999,999.99')))  from  dual ;
select decode(1000000,0,'0.00',trim(to_char(1000000,'99999999999999.99')))  from  dual ;
结果:1,000,000.00   1000000.00

5选择函数 COALESCE (c1,c2,c3,...) (当c1存在 取值 c1 ,当c1不存在 c2存在 取值c2 。 依此类推)

(1) 数据需要处理成如下形式

select a.nu_id c1,b.nu_id c2,c.nu_id c3 from li_rongzxmys  a 
        left join  li_rongzxmzs_ls b on b.nu_yusidfk = a.nu_id
        left join  li_hetxx_ls c on c.nu_zhongsidfk =  b.nu_id

(2)使用选择函数会得到如下数据 (示例)

注解:优先选取c3 的数据 c3 不存在 选择 c2 ,c2 不存在 选择c1

 select COALESCE (c3,c2,c1)  idfk  from (
        select a.nu_id c1,b.nu_id c2,c.nu_id c3 from li_rongzxmys  a 
        left join  li_rongzxmzs_ls b on b.nu_yusidfk = a.nu_id
        left join  li_hetxx_ls c on c.nu_zhongsidfk =  b.nu_id
         )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值