如何在访问中使用LIMIT查询,而不是TOP

时间:2013-09-25 11:22:20

标签: sql ms-access

我想从查询中显示15行但不是前15行?

SELECT Abgänge.Vorgang, Abgänge.Date_SW_Drucken FROM Abgänge 
WHERE Abgänge.Bezahlung = "Bar" LIMIT 34,15;

如何将其转换为访问2010?

限制:

LIMIT from_record-1, count_record

1 个答案:

答案 0 :(得分:3)

您不能,因为Microsoft Access SELECT syntax中不支持偏移。一个选项是TOPoffset + limit一起使用,并手动跳过offset行。顺便说一句:使用TOPLIMIT而不使用ORDER BY是不可取的,因为它可能会导致结果不一致。

您还可以将两个查询与TOP合并,先选择limit + offset,然后再选择offset,例如

SELECT TOP 15 ...
FROM (
   SELECT TOP 49 ....
   FROM sometable
   ORDER BY somecolumn ASC
) a
ORDER BY somecolumn DESC

此解决方案的唯一问题是,如果子查询的结果少于49,则偏移量将小于34。

如果您需要不同顺序的结果,则可能需要添加应用该订单的其他“图层”。