如何在MS-Access查询中编写此if语句?

时间:2013-08-05 18:14:54

标签: sql ms-access if-statement

这是我用C语言写的方式。

if (x > 50)
    {
    //Already wrote this
    }

else if((x < 50) && (x > 0))
    {
    if (a < 0.125y)
        {return 0;}
    else if (z >= 50)
        {return 50;}
    else
        {return x;}
    }

else
    { 
    return 0;
    } 

我尝试嵌套了大量的iif语句,但它变得如此混乱,这是不可读的。有没有更有效的方法?

任何帮助都会很精彩。谢谢!

1 个答案:

答案 0 :(得分:5)

iif(x>50,[your code],iif(x > 0, iif(a < .125y,0,iif(z >= 50,50,x)),0)

未来注意:这似乎不是一个巨大的嵌套问题。我已经看到一些有10级或更多级别,甚至达到极限(某处@ 10?)。我为复杂问题做的一个技巧是创建子查询,为主查询执行一些计算。

对于过于复杂的事情,最简单的赌注就是在模块中创建一个公共函数。然后,您可以像查询中的任何其他评估一样使用它。所以......

Public Function ReturnMyValue(x as Integer, a as integer, y as integer) as Integer 
'your code here
End Function

然后在你的查询...

=ReturnMyValue(x,a,y)