以下查询似乎忽略Microsoft Access中的DISTINCT。我期待1980年,1981年,1982年,1983年,但它回归1980年,1981年,1981年,1981年,......,1982年,1982年,1983年:
SELECT DISTINCT TOP 20 DatePart('yyyy', HIREDATE) FROM emp ORDER BY 1
非常类似的SQL Server查询非常有效:
SELECT DISTINCT TOP 20 DatePart(YEAR, HIREDATE) FROM emp ORDER BY 1
回到Access,它没有ORDER BY子句:
SELECT DISTINCT TOP 20 DatePart('yyyy', HIREDATE) FROM emp
但是,如下所示的其他查询与ORDER BY配合良好,并按预期删除重复项:
SELECT DISTINCT TOP 20 JOB FROM emp ORDER BY 1
有人可以正确解释为什么第一次查询失败而其他人没有。