Sql 0附近出现语法错误
下面的说法有什么不对?我正在使用SQLServer2008Sql 0附近出现语法错误,sql,sql-server,sql-server-2008,select,Sql,Sql Server,Sql Server 2008,Select,下面的说法有什么不对?我正在使用SQLServer2008 use Demo; SELECT * FROM users limit 0 , 30 我得到: Msg 102, Level 15, State 1, Line 4 Incorrect syntax near '0'. 真奇怪。我试过谷歌,但没找到多少信息 select top 30 * from users SQL Server使用该语法而不是limit表单。SQL Server不支持limit子句(即MySQL和Postgr
use Demo;
SELECT * FROM users
limit 0 , 30
我得到:
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '0'.
真奇怪。我试过谷歌,但没找到多少信息
select top 30 * from users
SQL Server使用该语法而不是
limit
表单。SQL Server不支持limit
子句(即MySQL和PostgreSQL语法)。您应该像这样使用top
:
select top 30 * from users
LIMIT
是一个MySQL关键字。在MS SQL Server中使用TOP
或ROWCOUNT
关键字
请注意,TOP
可以接受变量,例如从Foo中选择TOP(@NumberOfRows)*代码>
见:(同样适用于2008年)
根据LIMIT
的使用方式,LIMIT和TOP
之间有一个重要的区别(与只限制结果数量相比)。在这种情况下,MS SQL语法更加冗长;通常,ROW_NUMBER()函数会结合一些简单的逻辑来计算对所需页面有效的值
简单范围选择示例
SELECT * FROM
(
SELECT
ROW_NUMBER() OVER( ORDER BY SomeColumn ASC ) AS RowNumber,
AnotherColumn
FROM dbo.MyTable
) Q
WHERE RowNumber BETWEEN 20 AND 30; -- these integers can be variables