gpt4 book ai didi

sql - 在分页期间获取SQL Server中记录总数的有效方法

转载 作者:行者123 更新时间:2023-12-02 20:30:03 25 4
gpt4 key购买 nike

在 SQL Server 中查询表时,我尝试仅获取当前页的记录。但是,我需要为特定查询返回的记录总数来计算页数。如何在不编写另一个查询来计算记录的情况下有效地执行此操作。

 WITH allentities 
AS (SELECT Row_number() OVER (ORDER BY se.entityid ASC) AS
rowid
,empid
,lastname
,firstname
,d.depname

FROM emp e join dep d on e.depid=d.depid)
SELECT *
FROM allentities
WHERE rowid >= @pageid
AND rowid <= @pageid + 20

最佳答案

如果您添加第二个 ROW_NUMBER() 排序 DESC 而不是 ASC,则可以通过将两个相加来计算记录总数行计数在一起并减一。结果集中的任何行都将具有正确的总行数:

 WITH allentities 
AS (SELECT Row_number() OVER (ORDER BY se.entityid ASC) AS
rowid
,empid
,lastname
,firstname
,d.depname
,ROW_NUMBER() OVER (ORDER BY se.entityid DESC) AS rowIdNeg
FROM emp e join dep d on e.depid=d.depid)
SELECT *
,rowid + rowIdNeg - 1 as totalRecords
FROM allentities
WHERE rowid >= @pageid
AND rowid <= @pageid + 20

关于sql - 在分页期间获取SQL Server中记录总数的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007803/

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