访问sql中的IIF和Nz运算符[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问sql中的IIF和Nz运算符[关闭]相关的知识,希望对你有一定的参考价值。
我在ms-access-2010中的sql查询中使用了IIF(expression , truePart , falsePart)
。我还找到了另一个运营商NZ(expression,falsePart).
我想知道哪个运算符在时间和空间复杂性方面更快,以及如何?
示例如果我想从具有10k记录的表中获取记录。哪个来自上面的运营商更好用?
答案
除非在非常大的迭代中,否则每个的执行几乎相同。
在查询中 - 我认为有几个问题很突出。对我来说,这些是返回的数据类型和函数的本机状态。
立即If保留数据类型。不仅如此 - 您可以使用它来强制数据类型。如果您想要一个Integer或一个Date,那么您可以将其作为返回参数传递。 Nz为您提供了它想要回馈的变体(文本/字符串)。
我提到的另一个问题是可用性。 Immediate If由Jet的表达式服务实现。无需加载完整的Access VBA库以公开它。
换句话说 - 如果你创建一个查询,如
SELECT * FROM TableName WHERE IIF(FieldName Is Null, 0, FieldName) = 0
然后,您可以从Access外部的代码库执行该查询(不需要Access连接)。
Jet将评估该功能。 (并不是说这是一个特别好的查询 - 使用这两个函数实际上很糟糕)。
相当于
SELECT * FROM TableName WHERE Nz(FieldName, 0) = 0
依赖于Nz是Access Application对象模型的成员这一事实。它绝对要求它是执行查询的Access。不一定是常见问题,而是一个考虑因素。
以上是关于访问sql中的IIF和Nz运算符[关闭]的主要内容,如果未能解决你的问题,请参考以下文章