Previous topicNext topic
WebBuilderX > 子页面组件元素 > 表格类元素 > 列表达式 > 表达式方式创建 >
空值及逻辑值的处理

默认情况下,表达式中所用到的列有一个出现空值,都不会得到计算结果。为避免此情况的发生,可在表达式中加上此函数进行判断。在SQL语法规范中, 对空值的处理可以使用Is Null或Is Not Null进行判断,也可使用IsNull函数,但不同类型数据源对逻辑值的处理方法是不同的。

逻辑值既可用True和False表示,也可用-1和0表示。例如,以下三条条件语句的作用是等效的:
    [_locked] = True
    [_locked] = -1
    [_locked]
    再如,使用IsNull函数判断“折扣”值不为空的所有记录,以下语句都是等效的:
    isnull([折扣]) = False
    isnull([折扣]) = 0
    not isnull([折扣])

这里的逻辑值只能用1和0表示。其中,1表示True,0表示Fasle。也就是说,不论哪种数据源,都可以用0表示False,但表示True的却可能是1或者-1。
    例如,要对所有_locked列为True的记录进行条件操作,以下语句是正确的:
    [_locked] = 1
    下面的两条语句就是错误的:
    [_locked] = True
    [_locked]
    再比如,要匹配“折扣”值不为空的所有记录,以下语句都是等效的:
    isnull([折扣],0) <> 0
    not isnull([折扣],0) = 0
    很显然,IsNull函数在这里的用法和Access已经完全不同,特别要注意返回替代值的数据类型必须和指定列一致。假如判断的是其它类型列,比如字符型的“产品名称”,这里的isnull替代值也必须是字符型的。例如:
    not isnull([产品ID],'') <> ''