如何在 sql 中选择前 50 到 100 个返回(查询)行?

Sco*_*fer 2 sql sql-server select range

使用 MSSQL,如何跳过第一组 50 条记录,返回下一组 50 条记录,并从查询中排除任何剩余记录。本质上,类似于人们想象的以下代码会执行的操作,其中identitynumber 是记录的标识。

SELECT TOP(100) * FROM dbo.users
WHERE users.name = 'John' AND IDENTITYNUMBER >=50 AND IDENTITYNUMBER <=100
Run Code Online (Sandbox Code Playgroud)

Sve*_*aup 5

我猜您需要 OFFSET 关键字。

SELECT employee_id, first_name, last_name, salary 
FROM employees 
ORDER BY salary DESC 
OFFSET 5 ROWS 
FETCH NEXT 5 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下:

select * from dbo.Users
where name = 'John'
order by users.name
offset 50 rows
fetch next 50 rows only;
Run Code Online (Sandbox Code Playgroud)

来源: https: //www.sqltutorial.org/sql-fetch/