Foxtable(狐表)用户栏目专家坐堂 → [求助]判断值是否为空的表达式是什么?


  共有2160人关注过本帖树形打印复制链接

主题:[求助]判断值是否为空的表达式是什么?

帅哥哟,离线,有人找我吗?
jerry85618
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/3 14:34:00 [显示全部帖子]

IIF

IIF函数根据一个表达式的计算结果,返回两个值中的一个。

语法:

IIF(expression, TrueValue, FalseValue)

expression: 表达式
TrueValue: 表达式成立的时候,返回此值
FalseValue:表达式不成立的时候,返回此值

示例

Dim Val As Integer = 1000
Dim
m As String = IIF(Val > 500, "大", "小")

上面的语句完全等效于:

Dim Val As Integer = 1000
Dim
m As String
If
Val > 500 Then
    m =
"大"
Else

    m =
"小"
End
If

可以看出,对于一些简单的分支判断,使用IIF函数能够让代码显得更为简洁。


 回到顶部
帅哥哟,离线,有人找我吗?
jerry85618
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:205 威望:0 精华:0 注册:2012/2/24 12:31:00
  发帖心情 Post By:2016/8/3 14:39:00 [显示全部帖子]

关于空值

表达式用Null表示空值,例如将折扣列的表达式设为:

IIF([数量] > 1000, 0.1, Null)

意思是:如果数量大于1000,折扣设为0.1,否则无折扣。

可以用 Is Null语句判断某列内容是否为空

例如在订单表中,金额列的公式可以设为:

IIf([折扣] Is Null, [数量] * [单价], [数量] * [单价] * (1 - [折扣]))

意思是,如果折扣列没有输入内容,那么金额等于:

[数量] * [单价]

如果已经输入折扣,那么金额等于:

[数量] * [单价] * (1 - [折扣])

实际上,上面的公式用IsNull函数来编写更为简单:

[数量] * [单价] * (1 - IsNull([折扣], 0))

但是有的时候,我们是没有办法用IsNull函数的,只能用Is Null语句,例如使用表达式筛选时,需要从订单表中筛选出折扣为空的行,那么筛选表达式为:

[折扣] Is Null

关于筛选,会有专门的章节讲述。

IsNull函数可以返回列的值,所以多用于计算,而Is Null语句返回一个逻辑值,所以多用于条件筛选,关于Is Null语句的实际应用,我们将在开发指南中接触到。

如果要判断内容是否不为空,可以加上Not关键词,例如:

[折扣] Is Not Null


 回到顶部