我有一个非常基本的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;
同样的错误。
正确的语法是什么?
答案 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