日期:2014-05-16  浏览次数:20970 次

请问Access中有没有类似以下SQL的写法
请问Access中有没有类似以下SQL的写法:

case   lx   when   1   then   '没有对应标准电价 '   when   2   then   '电价值不一致 '   end   as   "类型 "

上面的写法是DB2中的写法

------解决方案--------------------
没有,但可以用iif()函数。

如:


iif(lx=1, '没有对应标准电价 ',iif(lx=2, '电价值不一致 ', '其他值 ')) as 类型


------解决方案--------------------

--相当于SQL Server的case when。

--查看Access联机帮助。


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