在ACCES 中如何使用 CASE 语句

用IIF(SEX=‘1’,‘男’,‘女’)



access中没有case函数
access的帮助:

Choose 函数


从参数列表中选择并返回一个值。

语法

Choose(index, choice-1[, choice-2, ... [, choice-n]])

Choose 函数的语法具有以下几个部分:

部分 描述
index 必要参数,数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间。
choice 必要参数,Variant 表达式,包含可选择项目的其中之一。



说明

Choose 会根据 index 的值来返回选择项列表中的某个值。如果 index 是 1,则 Choose 会返回列表中的第 1 个选择项。如果 index 是 2,则会返回列表中的第 2 个选择项,以此类推。

可以使用 Choose 来查阅一个列表中的项目。例如,如果 index 所指定的值为 3,而 choice-1 = "one"、choice-2 = "two"、且 choice-3 = "three",那么 Choose 将返回 "three"。当 index 代表一选项组中的值时,则这项功能将会特别有用。

即使它只返回一个选项值,Choose 仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了 MsgBox 函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。

当 index小于 1 或大于列出的选择项数目时,Choose 函数返回 Null。

如果 index 不是整数,则会先四舍五入为与其最接近的整数。


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 会计算所有的表达式。因此应该注意到所产生的副作用。例如,只要其中一个表达式导致被零除错误,就会发生错误。

eg:Switch([as03]![kind]='4100',1,[as03]![kind]='6141',2,[as03]![kind]<>'4100' And [as03]![kind]<>'6141',3)

eg2://SELECT distinct db_FuncRights.PKID,db_FuncRights.ClassID, db_FuncRights.RightFlag,db_FuncRights.ClassNameFlag
   //,switch(db_FuncRights.ClassNameFlag ='normal',db_fClass.Classname,db_FuncRights.ClassNameFlag ='news',db_newClass.ClassName,db_FuncRights.ClassNameFlag ='spec',db_SpecAreaClass.className)
   // as className FROM db_FuncRights,db_fClass,db_newClass,db_SpecAreaClass  where db_FuncRights.UserID =2
   //and  db_FuncRights.ClassID = switch(db_FuncRights.ClassNameFlag ='normal',db_fClass.ClassID,db_FuncRights.ClassNameFlag ='news',db_newClass.ClassID,db_FuncRights.ClassNameFlag ='spec',db_SpecAreaClass.ClassID)
posted @ 2006-08-10 15:33  dodo-yufan  阅读(1254)  评论(0编辑  收藏  举报