access 中IIF条多件表达式的问题,我需要在表中做一个计算,用到表达式IIF,因为刚刚学习ACCESS,

access 中IIF条多件表达式的问题,我需要在表中做一个计算,用到表达式IIF,因为刚刚学习ACCESS,,第1张

条件太多的情况下应该放弃使用多层嵌套iif函数这种解决方式,因为一则表达式会非常冗长,二则嵌套层数过多可能超出数据库规格限制而报错。

建议但对创建一个运输公司代码对照表并录入相应数据,然后在SQL查询中运用DLookup函数检索出相应简码。例如建立如下代码表:

代码表

二位码 一位码

XJ A

RX B

LW C

19 D

利用DLookup函数检索出相应物流公司一位简码

DLookup("一位码","代码表","二位码=Left([单号],2)")

以性别字段为条件来判断工资的增长,可以用IIF函数来处理:

UPDATE 工资表 SET 工资表工资 = [工资]+IIf([性别]="男",200,100);

上面为更新查询的SQL语句。当然也可以写成:

UPDATE 工资表 SET 工资表工资 = [工资]+IIf([性别]="女",100,200);

相信这样,你就会理解IIF函数的意义了。

看来还是没有完全理解IIF()函数类别多时,可以适当嵌套IIF()来解决问题的

你可以自己试着做一下,如果没有成功,再告诉你^_^

非嵌套IIF()函数时,标准答案如下:

UPDATE 商品 SET 商品单价 = [单价]IIf([类别]="文具",09,105) WHERE (((商品类别)="文具" Or (商品类别)="日用品"));

嘿嘿,不要再问了,给分吧谢谢

sql="select from table where 字段 "& iif(="all"," like '' ","='"&[全部]&"'" )

使用IIF,进行太多条件判断是很复杂的,建立 您使用switch函数来替换之,会让查询 简单很多

一般IIF是两个条件,或最多3个,如果超过3个,最好使用access的switch函数

这是根据我们Access中国论坛多年的编程经验得出来的,您可以尝试一下,也可到论坛去尝试找找问题的答案

或者是内容里多了),或少了,号之类

Access可以用iif()+ronud()函数实现roundup()这个功能,例如小数a,向上保留1位小数,iif(round(a,2)>round(a,1),round(a,1)+01,round(a,1))。说明:这是就是数学的语言,当a的2位小数大于1位小数,把1位小数加01,否则就是a的1位小数。

就函数本身来说,这样写会把 >0 和 <10000 看作是条件,当然出错了。。

如果你想让结果显示为 >0 或 <10000 ,应该这样写:

IIf([PayType]="M",">0","<10000")

而如果你想让结果显示为一个 >0 或 <10000 的数值,比如 2 或 9354 ,则应该这样写:

IIf([PayType]="M",2,9354)

就表的有效性规则来说,是不允许用表的其他字段来定义规则的!

所以,即使函数正确,字段 [PayType] 也不能作为其他字段的规则来用。

你语法没错

select

行业,len(行业)

from

表名

看看是不是那个为空的,长度也是空

不行的话你改成这样试试

select

IIf([行业]

Is

Null

or

trim([行业]=''),"其他类",[行业])

from

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13495506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存