我正在尝试做类似的事情:
SELECT * FROM table LIMIT 10,20
要么
SELECT * FROM table LIMIT 10 OFFSET 10
但是使用SQL Server
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
我还发现:
SELECT TOP 10 * FROM stuff;
...但这不是我想要做的,因为我无法指定起始限制。
我还有另一种方法吗?
另外,只是好奇,SQL Server不支持该LIMIT
功能或类似原因吗?我不想这么刻薄,但这听起来确实像是DBMS所需要的东西。如果确实如此,那么我很抱歉这么无知!在过去的5年中,我一直在使用MySQL和SQL +。
ROW_NUMBER()
并限制TOP
范围的范围和范围WHERE
的边界的条件。我还注意到,如果该TOP
子句使用文字而不是变量,则性能会更好