oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )

函数声明:nvl(col,val)

说明:当col为空时取val作为返回值,当col不为空时取col值。

作用:最主要是数据格式化,如计算金额,不想出现空数据(计算过程 两个参数有一个为空null,都会丢失结果集~返回空)。null值+,-,*,/数字等于null,导致结果集丢失返回空 ,所以在表达式中对可能为空的值要使用用nvl解决空值问题。。

反例:

    两个字段(  v."SETTLEMENT_MONEY", v."REFUND_MONEY")   做减法       

   如第四条数据  SETTLEMENT_MONEY  =200   REFUND_MONEY=0   肯定是得不到结果集

如下:

正例:  nvl(col,val)函数使用

select
      v.SETTLEMENT_MONEY,
      v.REFUND_MONEY,
  nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL
  
 from CUSTOM_BILL v

 结果集如下: nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL

                    当SETTLEMENT_MONEY为空时取0作为返回值,当SETTLEMENT_MONEY不为空时取SETTLEMENT_MONEY值。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你才是臭弟弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值