在Access中查询的三个状态转换

时间:2014-09-27 22:07:11

标签: sql ms-access

如果我在表中有一个布尔字段,我会使用IIF()应代表Incredible-IF(:)函数将布尔值转换为所需的结果,如

SELECT IIF(bool_field, 'Foo', 'Bar')...

现在我的问题有点扩展了。我有三种状态:-101

  • -1意味着过去
  • 0表示当前
  • 1意味着未来

如何在Access中的查询中转换这些状态?

2 个答案:

答案 0 :(得分:1)

作为嵌套IIf()函数的替代方法,您还可以使用Switch()函数

SELECT Switch(bool_field=-1, "past", bool_field=0, "current", bool_field=1, "future") ...

有时,当IIf()嵌套变得太深时,它可以提高可读性。

答案 1 :(得分:0)

如果我嵌套IIF(),就可以完成。

SELECT (field<0, 'past', IIF(field>0, 'future', 'current')) ...