access 查询得到空值 怎样赋值为零

access 查询得到空值 怎样赋值为零,第1张

可以使用nz函数或iif函数嵌套isnull函数将控制转换成0。

例如:

select nz(销售数量,0) from 销售记录;

或者

select iif(isnull(销售数量),0,销售数量)

from 销售记录;

你的问题实际上涉及一个概念:任何有空值(null)参与的计算,结果仍为空值(null)。

库存余量:[物料入库数量总计]![入库数量之总计]-[物料发放数量总计]![数量之总计]

对于红笔 库存余量=10-3 =7 正常显示

而黑笔 库存余量=10-null =null 由于为null,自然没有显示。

解决方法可以使用nz()函数,nz()函数会将数值类型的null转化为0,将文本类型的null转化为""(即空字符串),这样就可以正确参与计算了。

所以你可以将上面公式改为

库存余量:nz([物料入库数量总计]![入库数量之总计])-nz([物料发放数量总计]![数量之总计])

即可正确计算了。

我明白了,null+1+1=null 而不是=2,您要解决的是如何把null 变成0

有2种方法:(本人推荐用第一种方法)

第一:用Nz([碳粉])。当一个 Variant 为 Null 时,使用 Nz 函数可以返回 0、零长度字符串 (" ") 或其他指定值。例如,可以使用该函数将 Null 值转换为其他值并防止它通过表达式扩散。

Nz(variant, [valueifnull])

Nz 函数具有以下参数:

参数说明

variant 数据类型为 Variant 的变量。

Valueifnull 可选参数(除非在查询中使用)。一个 Variant,提供当 variant 参数为 Null 时的返回值。该参数使您能够返回一个除 0 或零长度字符串以外的其他值。

注释 如果在查询的表达式中使用不带 ValueIfNull 参数的 Nz 函数,则对包含空值的字段,其返回结果为零长度字符串。

Nz 函数对可能包含 Null 值的表达式是很有用的。要使表达式即使在包含 Null 值时也能计算得到一个非 Null 值,可使用 Nz 函数来返回 0、零长度字符串或一个自定义的返回值。

另一种方法是用iif()函数。

iif(表达式,value1,value2),表达式为ture返回value1值,为false时返回value2的值。可设为iif(isnull([碳粉]),0,[碳粉])。

ACCESS 里面, 应该是使用 IIF 函数。

select

IIF ( afield1 IS NULL, 0, afield1) AS field1

bfield2

from table1 a left join table2 bon afield3=bfield4

注: ACCESS 里面好像是没有 CASE WHEN 的, IIF 主要用来实现 CASE WHEN 的功能。

这里的

IIF ( afield1 IS NULL, 0, afield1)

等价于

CASE WHEN afield1 IS NULL THEN 0 ELSE afield1 END

也就是 假如afield1字段为空的话, 那么显示 0 , 否则显示 afield1

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存