使用LIMIT时出现SQL错误

时间:2011-09-19 10:29:14

标签: sql sql-server

我是SQL的初学者,我正在W3 Schools SQL Exercises上学习本教程。我试图运行以下查询,但我收到错误:

SELECT * FROM Customers LIMIT 5, 5

错误:

  

FROM子句中的语法错误。

4 个答案:

答案 0 :(得分:7)

您的问题是您使用的是MySql语法而不是SqlServer语法。 你应该使用:

SELECT TOP 5 * FROM Customers

答案 1 :(得分:2)

如果您关注的是您提供的链接中的示例...

  

我们将使用Northwind数据库中的Customers表:

Northwind 是MS SQL产品中的示例数据库。并且MS SQL不支持使用LIMIT查询。所以该网站可能正在使用该RDBMS的某些版本。

尝试跑步:

SELECT TOP 5 * FROM customers;

这将获得结果集中的前5条记录(无序)。但是,它不会跳过任何记录,因为您的LIMIT 5, 5子句会有。

答案 2 :(得分:2)

你可以看到他们使用ADODB,所以你应该使用TOP子句:

SELECT TOP 5 * FROM Customers

答案 3 :(得分:1)

我怀疑你需要使用offset

select * from Customers limit 5 offset 5;

并非所有RDBMS都支持limit m,n语法(我相信MySQL会这样做,但PostgreSQL不支持)。此外,您可能希望使用order by子句来帮助确保您的查询获得一致的结果(因为数据库通常不关心行或列的顺序,除非您指定):

select * from Customers order by col limit 5 offset 5;