您的位置:首页 > 其它

Access中类似Case when的应用

2012-06-26 15:49 351 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: