MS Access限制语法

时间:2015-02-28 17:31:10

标签: sql limit

我有一个非常基本的Access数据库表,名为SCHEDULE。当我创建以下SQL Query条目时,事情就完美了。

SELECT *
FROM schedule
ORDER BY start;

现在我想要的是跳过前3条记录并查看其余10条记录:

SELECT *
FROM schedule
ORDER BY start
LIMIT 3,7;

但是我收到了“查询表达式中的语法错误(缺少运算符)'START LIMIT 3'

因此,作为测试我尝试了以下内容:

SELECT *
FROM schedule
ORDER BY start
LIMIT 0,3;

同样的错误。

正确的语法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用子查询来执行此操作:MS Access:

select top 7 *
from (select top 10 *
      from schedule
      order by start
     ) as s
order by start desc;

如果您希望最终结果按升序而不是降序排列,请将其用作子查询并添加order by start。

编辑:

如果你只想避免前三个:

select *
from schedule
where start not in (select top 3 start from schedule order by start);

答案 1 :(得分:0)

MS Access中没有LIMIT运算符,这就是您获取语法错误的原因,但您可以使用TOP和子查询获得此结果,如下所示:< / p>

SELECT *
FROM schedule
WHERE schedule.ID IN 
      (
        SELECT TOP 7 SUB.ID
        FROM [
               SELECT TOP 10 schedule.start, schedule.ID
               FROM schedule
               ORDER BY schedule.start, schedule.ID
             ]. AS SUB
        ORDER BY SUB.start DESC, SUB.ID DESC
      )
ORDER BY schedule.start, schedule.ID