什么是空值?

与数据库开发相关的空值是生活中的一个小谜团,对于那些冒险进入数据库世界的新手来说,这是一个完全困惑的话题。 Null值不为零(0),长度为零(0)的字符串,空字段或根本没有任何值-那么Null到底是什么? 本主题的目的是希望解释什么是Null值,讨论有关Null的一些特性,展示我们如何检测到它们,最后是如何将它们转换为不太弯曲的实体。

  1. 什么是空值?
    1. Null是Variant子类型,用于指示数据项不包含有效数据,缺少数据或数据是未知的。 此特殊值不是像“ Smith”,#12/24/2006#,25.98等的真实值,而是指示数据丢失,未知或不适用。 默认情况下,表或查询字段以及表单或报表控件中的数据具有变量数据类型。 当您将“字段”或“控件”留为空白时,将自动存储空值。 要记住的一个关键点,值得重申的一点是,只有Variant Data Type con包含Null。
  2. 有关Null值的一些特殊性。
    1. 如果表达式的“任何”部分求值为空值,则整个表达式也将具有空值。 这称为空值传播,这是我们应该采取步骤处理它们的关键原因。
    2. 如果内置或自定义函数的参数求值为Null,则该函数通常返回Null值。 例如,如果您使用SQL或聚合函数来为一组记录计算字段的汇总值,则该字段中具有空值的记录将不计算在内。
    3. 当您在查询中联接表时,联接字段中具有空值的记录不包括在查询结果中。
    4. 创建关系并强制执行参照完整性时,仍可以通过在子表中将联接字段保留为空白来在子表中创建孤儿。
  3. 您如何检测空值?
    1. 幸运的是,我们有一个函数,该函数返回一个布尔值,该布尔值指示表达式是否包含有效数据(空)。 此函数是IsNull()函数,仅包含1个必需的参数:
    IsNull(<expression>)      'returns True if expression is Null
    'The required expression argument is a Variant containing a numeric expression or string expression. 
  4. 将Null转换为危害较小的东西。
    1. 幸运的是,我们有一个与Nulls永无休止的盟友,这就是Nz()函数。 当Variant为Null时,可以使用此函数返回零,零长度字符串(“”)或另一个指定的值。 例如,您可以使用此函数将Null值转换为另一个值,并防止它通过表达式传播。

      Nz(variant, [valueifnull])
      变量Argument是数据类型Variant的变量。 valueifnull参数是可选的(除非在查询中使用)。 如果Variant参数为Null,则它是Variant,提供要返回的值。 此参数使您可以返回零或零长度字符串以外的值。

      如果variant参数的值为Null,则Nz函数将返回数字零或零长度的字符串(在查询表达式中使用时始终返回零长度的字符串),具体取决于上下文是否指示该值应为数字或字符串。 如果包括可选的valueifnull参数,则当variant参数为Null时,Nz函数将返回该参数指定的值。 在查询表达式中使用时,NZ函数应始终包含valueifnull参数,

      如果variant的值不为Null,则Nz函数将返回variant的值。
    Dim varVariant As Variant
    varVariant = Null 
    Debug.Print Nz(varVariant)              'returns a Zero length String
    Debug.Print Nz(varVariant, "Null")      'returns the String Null 
    Dim intTest As Integer
    intTest = 600
    Debug.Print Nz((intTest * varVariant) / 16, 9999)      'returns 9999

From: https://bytes.com/topic/access/insights/716197-what-null

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值