避免重复sql切换条件

时间:2015-01-14 22:39:06

标签: sql ms-access-2003

(需要将代码兼容到Access 2003)

道歉,如果这是“哇!”时刻(仍然在学习)...作为SELECT语句的一部分,我有以下字段Total,其目的是为每条记录计算4个先前字段的总和。如果总和<1000则将“0”值传递给“总计”,如果不是,则传递实际总和。

总结我们:

,IIf(
Switch(……) +
Switch(……) +
Switch(……) +
Switch(……)<1000,0,

Switch(……) +
Switch(……) +
Switch(……) +
Switch(……))

AS Total

在其扩展版本中它确实有效,但是,这看起来很麻烦,因为它意味着必须重复两次初始的4次切换条件(如果<1000则一次,如果不是则再次一次)。

有没有办法减少这个?

1 个答案:

答案 0 :(得分:1)

一种方法是使用子查询:

select iif(val < 1000, 0, val)
from (select x.*, (switch() + . . . + switch()) as val
      from x
     ) as x1;