我正在尝试使用Access数据库在ASP中使用我的页面列表功能,但我不知道Microsoft SQL中LIMIT的替代方法。我试过TOP,但这似乎没有用。
以下是我使用MySQL的声明:
SELECT * FROM customers ORDER BY customerName DESC LIMIT 0, 5
如何将其转换为与Access数据库一起使用?
答案 0 :(得分:13)
根据ms-access视图:
SELECT TOP(5) * FROM customers ORDER BY customerName;
将获取错误“SELECT语句包含保留字”,
正确的语法是:
SELECT TOP 5 * FROM customers ORDER BY customerName;
(注意括号)..
答案 1 :(得分:3)
Top(5)具有欺骗性。在内部,数据库返回所有记录,然后Access只显示前5行。我使用LIMIT关键字而不是Top(n)。
答案 2 :(得分:2)
LIMIT的访问没有直接的等价物,但是TOP语句可以被操作成类似的方式工作,例如“...... LIMIT BY 50,250”等。我通过实验发现,如果你想以250的偏移量获得“下一个50”记录,你可以尝试以下
SELECT * FROM(SELECT TOP 50 tab2。* FROM(SELECT TOP 300 tab1。* FROM my_table AS tab1 ORDER BY column_name ASC)AS tab2 ORDER BY column_name DESC)ORDER BY column_name ASC;
这应该返回第250行到第300行的记录,按升序排列(如果它们存在。),带或不带唯一索引。如果需要,WHERE子句可以进一步整理结果。
有点令人费解,但我希望它有所帮助。
答案 3 :(得分:0)
根据 (dEePaK) 第一个答案:
SELECT TOP 5 * FROM tblPharmacyExtended ORDER BY ActiveStartTime DESC
TOP(5) 不适合我的情况。