在SQL Server中,我们可以使用IsNull()函数来检查表达式值是否为null。对于前。
Select IsNull(sum(amount),0) as TotalAmount
From Payments
同样,MS Access Query中有任何函数来检查null。我需要在MS Access Query中执行相同的语句。
有人可以告诉我在MS Access中替换IsNull()
。
感谢您分享您的时间。
答案 0 :(得分:10)
使用Jet / ACE,您的查询可以重写为:
SELECT IIf(Sum(amount) Is Null, 0, Sum(amount)) AS TotalAmount
FROM Payments
这甚至可以从C#开始工作,因为Is Null
和IIf
都内置在Jet / ACE中。请注意Is Null
中的空格和缺少括号(它是语句,而不是函数)。
使用IIf
和Is Null
而不是Nz
,即使Nz
可用,还有两个额外奖励:
Nz
返回一个Variant,所以Jet / ACE被强制将结果显示为字符串(通常不是你在处理日期,数字等时所需要的) 更新:Allen Browne对IIf
,Nz
,IsNull()
和Is Null
的使用率为excellent primer。我打算将该链接发布为我的原始答案,但当时我找不到该页面。我从记忆中尽我所能,但真正归功于布朗先生。
答案 1 :(得分:6)
答案 2 :(得分:0)
同样, 也可用于排序时的日期和时间
.....ORDER BY TRANSDATE ASC,(IIf([PaymentTime] Is Null, '23:59:59', [PaymentTime])) DESC