Access中类似Case when的应用
Access中不支持Case when语法,可用iif
如:select id,num,dt,username, iif(dxaction , '还' , '取' ) AS dxaction from dxaction;注:dxaction字段本身为bool类型
select iif(sex= '1 ', '男 ', '女 ') from tt
帮助说明:
用 SWITCH 函数也可以 ,如
select switch(fieldname= 'a ', '您选择了选项1 ',fieldname= 'b ', '您选择了选项b ',fieldname= 'c '...) as newfield from table
IIf 函数
根据表达式的值,来返回两部分中的其中一个。
语法
IIf(expr, truepart, falsepart)
IIf 函数的语法含有下面这些命名参数:
部分 描述
expr 必要参数。用来判断真伪的表达式。
truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。
falsepart 必要参数。如果 expr 为 False,则返回这部分的值或表达式。
说明
由于 IIf 会计算 truepart 和 falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果 falsepart 产生一个被零除错误,那么程序就会发生错误,即使 expr 为 True。
IIf 函数示例
本示例使用 IIf 函数来判断 CheckIt 过程之 TestMe 参数的值,如果参数值大于 1000 则传回“Large”;否则传回“小图标”。
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large ", "Small ")
End Function
Switch 函数
计算一组表达式列表的值,然后返回与表达式列表中最先为 True 的表达式所相关的 Variant 数值或表达式。
语法
Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])
Switch 函数的语法具有以下几个部分:
部分 描述
expr 必要参数。要加以计算的 Variant 表达式。
value 必要参数。如果相关的表达式为 True,则返回此部分的数值或表达式。
说明
Switch 函数的参数列表由多对表达式和数值组成。表达式是由左至右加以计算的,而数值则会在第一个相关的表达式为 True 时返回。如果其中有部分不成对,则会产生一个运行时错误。如果 expr-1 为 True 则 Switch 返回 value-1,如果 expr-1 为 False,但 expr-2 为 True,则 Switch 返回 value-2,以此类推。
Switch 会返回一个 Null值,如果:
没有一个表达式为 True。
第一个为 True 的表达式,其相对应的值为 Null。
虽然它只返回其中的一个值,但是 Switch 会计算所有的表达式。因此应该注意到所产生的副作用。例如,只要其中一个表达式导致被零除错误,就会发生错误。
Switch 函数示例
本示例使用 Switch 函数返回和城市名称匹配的语言名称。
Function MatchUp (CityName As String)
Matchup = Switch(CityName = "London ", "English ", CityName _
= "Rome ", "Italian ", CityName = "Paris ", "French ")
End Function