Count 和 NULL值 造成的问题

最近用户反映,自动配线功能不能正常运行,但在用手工配时,能成的配出来。

在查找原因时,主要查找存储过程,因为这个功能主要是调用存储过程来实现的。

查找到最近,发现有一条语句,明明的记录,但是不能返回正确的记录数,老是返回0:

SELECT COUNT(T.AREAID) FROM DL_LINE T WHERE T.STARTLINEID =1111;

但是在表 DL_LINE 中,是有5条满足条件的记录,COUNT(T.AREAID) 用来统计统符合条件的记录数,

但是在执行时,返回 0 条。最后一查看,这几条记录的 AREAID 全是NULL,没有值。

改用 SELECT COUNT(*) FROM DL_LINE T WHERE T.STARTLINEID =1111; 执行后,返回了正确的结果 5 条,

回头一看,造成这种的情况的原因有:

第一:COUNT 函数只能统计有具体值的字段,如果指定具体的字段,如 COUNT(FIELD_A),则如果FIELD_A列有空值时,对有空值的记录不统计。

第二:要注意字段的NULL,这种值的字段,容易出错。最好用 NVL 给出默认值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值