gpt4 book ai didi

sql-server - SQL Server 中的分页

转载 作者:行者123 更新时间:2023-12-01 12:00:49 25 4
gpt4 key购买 nike

我如何限制查询结果(在我的例子中大约 60K 行)并仅从 X 行到 Y 行进行选择?

如果我使用 ROW_NUMBER() 我不喜欢我的查询,因为它涉及 2 个选择查询.. 一个返回行,一个选择我需要的部分

更新:

这是我现在使用的查询:

SELECT  *
FROM (
SELECT row_number() OVER (ORDER BY E.LastChangeDate DESC) AS row, E.*, U.[DisplayName] AS EntryCreatorDisplayName, U.[Email] AS EntryCreatorEmail
FROM entries e
INNER JOIN
users u
ON e.fk_user= u.id
WHERE e.EntryRank = 2
AND u.Administrator = 1
) as TableWithRows
WHERE (row >= 31 AND row <= 60)

最佳答案

WITH    q AS
(
SELECT TOP (@Y) m.*, ROW_NUMBER() OVER (ORDER BY mycol) AS rn
FROM mytable m
ORDER BY
mycol
)
SELECT *
FROM q
WHERE rn >= @X

SQL Server 2000 中:

SELECT  *
FROM (
SELECT TOP (@Y - @X) *
FROM (
SELECT TOP (@X) *
FROM mytable
ORDER BY
mycol
) q
ORDER BY
mycol DESC
) q2
ORDER BY
mycol

关于sql-server - SQL Server 中的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com