有没有办法使用If语句的条件作为其值?

时间:2011-12-16 15:09:41

标签: sql ms-access optimization conditional-statements

这可能是一个简单的问题,但这是我以前从未见过的答案。有没有办法使用if语句的条件作为其值?在进行大量计算以确定是否满足某个条件的情况下,这将非常有用,如果是,那么计算就是结果。

举个例子:

if ( [intense calculation] > 0, [same intense calculation], 0)

我特别感兴趣的是SQL,因为我现在正在使用Access中的报表,因此无法将强烈计算的结果存储在变量中。

2 个答案:

答案 0 :(得分:6)

不确定MS Access报告世界中是否存在这样的概念,但如何:

MAX([intense calculation], 0)

这种方法的明显好处是计算只需要进行一次。

答案 1 :(得分:0)

大多数SQL形式的一种方法是将主查询移动到子查询,在新的外部查询中使用强化计算列别名并进行测试 - 如下所示:

select v.*,
       case intense_calc > 0 then intense_calc else 0 end as positive_calc
from (select [intense calculation] as intense_calc,
             [other columns]
      from ...) as v