空值害死人呀。

qufo 2004-03-30 06:34:56
空值害死人呀。


Oracle中
有一数表 tb,记录销售收款情况,其中收款金额默认为"空"

销售客户 销售额 收款金额
客户a 100 52
客户b 100
客户c 10
客户d 1200 52
.......
客户zxz 200 45



如此一来,用 select sum(销售额) from tb 可以得到销售额总和,而 select sum(收款金额) from tb 却得不到金额合计,因为会出现 52+NULL+NULL+52,而NULL是不可以相加的,怎么办呢?

要 select sum(销售额)-sum(收款金额) from tb要怎么写?
...全文
76 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qufo 2004-03-31
  • 打赏
  • 举报
回复
试了一下。
其它数据库可以用 isnull 可是在 Oracle中用 nvl,所以...
mmtxm 2004-03-31
  • 打赏
  • 举报
回复
同意sousouwjh(sousouwjh)
QSmile 2004-03-31
  • 打赏
  • 举报
回复
学习
benny87 2004-03-30
  • 打赏
  • 举报
回复
用nvl函数
select sum(nvl(销售额,0))-sum(nvl(收款金额,0)) from tb
td427 2004-03-30
  • 打赏
  • 举报
回复
楼上说的那样,用个isnull(fieldname,defalueValue),如果字段值为空,刚使用默认值。
sky_234 2004-03-30
  • 打赏
  • 举报
回复
同意楼上的!
sousouwjh 2004-03-30
  • 打赏
  • 举报
回复
用isnull函數!
select sum(isnull(销售额,0)) from tb

select sum(isnull(销售额,0))-sum(isnull(收款金额,0)) as 總額 from tb
nyf1220 2004-03-30
  • 打赏
  • 举报
回复
给它搞个默认的数值呀
比如0

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧