如何在MS Access SQL中按最多多个字段排序

时间:2016-09-12 02:13:38

标签: sql ms-access ms-access-2013

我有一个表,其中每个记录包含3个字段,这些字段是日期(其中一些可能为空),以及其他数据。我希望能够按照在3个日期字段中的任何一个中找到的最大日期按降序排序我的结果。我找到了MySQL的this答案,这正是我想要做的,但似乎在Access中不存在那里提到的功能。

使用美国日期格式,如果我的数据是

id    date1       date2       date3
------------------------------------
 1   1/1/2001   1/2/2001     10/3/2001
 2   7/1/2001   1/2/2002     1/8/2001
 3   1/18/2001  6/2/2001     1/3/2003
 4   12/1/2001  5/4/2001     8/9/2001

我想回来

id    date1       date2       date3
------------------------------------
 3   1/18/2001  6/2/2001     1/3/2003
 2   7/1/2001   1/2/2002     1/8/2001
 4   12/1/2001  5/4/2001     8/9/2001
 1   1/1/2001   1/2/2001     10/3/2001

如何创建我的ORDER BY子句以按照我喜欢的方式获取此订单?

1 个答案:

答案 0 :(得分:1)

很遗憾,MS Access不提供least()greatest()。你可以用蛮力的方式做到这一点:

order by iif(date1 > date2 and date1 > date3, date1,
             iif(date2 > date3, date2, date3)
            )