如果在Excel – Ms Access DB中声明

任何人都可以build议下面的IF语句的语法,

IIf ( Cur_Insert_Cost, Cur_Insert_Cost/Cur_Insert_Edges, Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1) ) AS Cur_Cost_Edge_Regrind 

上面的行是从Ms-Access DB的Excel报告

我不明白的条件部分…. !!!

Cur_Insert_Cost,Cur_Insert_Edges,Cur_Regrindable_Cost等是列名

IIF是一个三元运算符。 它由三部分组成,用逗号隔开

 iif(expression, truepart, falsepart) 

在你的情况下,这意味着:

 if Cur_Insert_Cost is not zero then return the result of the expression Cur_Insert_Cost/Cur_Insert_Edges else return the result of the expression Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1) 

结果将在查询中被命名为Cur_Cost_Edge_Regrind

testing是如果Cur_Insert_Cost被认为是空的false或任何访问计数为false。

所以这可能意味着Cur_Insert_Cost = NULL,0,'',假(我想我忘了一些替代品)

正如你可以看到第一部分使用的是和IIRC Cur_Insert_Cost应用于NULL将给予exceptoin(但这只是从我的记忆)

声明说,列Cur_Cost_Edge_Regrind的值是:

  • 如果Cur_Insert_Cost为TRUE(或1),则Cur_Insert_Cost/Cur_Insert_Edges的结果
  • 如果Cur_Insert_Cost为FALSE(或0),则Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1)

希望有帮助…