当前位置: 首页 > 面试题库 >

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

充运浩
2023-03-14
问题内容

在sql
server中查询表时,im试图仅获取记录的当前页面。但是,我需要为特定查询返回的记录总数,以计算页面数。如何有效地做到这一点,而无需编写另一个查询来对记录进行计数。

 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,则可以通过将两个行计数加在一起再减去一个来计算记录总数。rsult集中的任何行都将具有正确的总行数:

 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


 类似资料:
  • 样本数据 我有一个数据。带有事件()和数据的表。包含特定时间段内所有分钟数的表格()。 看起来像这样 问题 对于,我想知道在这一分钟内发生了多少来自的事件。 我可以得出两个可能的数据。表3:解决方案: 这两种方法都有效,并提供了我需要的答案 但是当我看基准时,以压倒性优势获胜... 问题: 为了更好地理解data.table连接,我正在寻找为什么我的连接(ans1)花费了这么长时间(200倍慢),

  • 本文向大家介绍mysql获取group by的总记录行数另类方法,包括了mysql获取group by的总记录行数另类方法的使用技巧和注意事项,需要的朋友参考一下 mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数。 mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 SELECT COUNT

  • 问题内容: 我需要在系统当前日期时间之前10分钟找到记录。 问题答案: 可能是一个起点。当然,它可能不会完全匹配… …如果您想获取符合该条件的最新记录,请尝试

  • 问题内容: 我陷入MySQL中的问题。我想获取两个日期时间项之间的记录数。 例如: 我的表中有一列名为“ created”的数据类型。 我想计算在“今天的4:30 AM”和“当前日期时间”之间的日期时间创建的记录。 我尝试了MySQL的一些功能,但仍然没有运气。 你能帮我吗?谢谢。 问题答案: 可能与: 或使用: 您可以根据需要更改日期时间。可以使用或获取所需的日期。

  • 问题内容: 在MS SQL 2000和2005中,给定日期时间(例如‘2008-09-25 12:34:56’),获取仅包含‘2008-09-25’的日期时间的最有效方法是什么? 问题答案: 我必须承认,我以前从未见过Matt展示的下浮率转换。我不得不对此进行测试。 我测试了一个纯选择(它将返回日期和时间,而这不是我们想要的),这里是统治性解决方案(floor-float),这里提到了一个普通的“

  • 我写了一个应用程序,可以在NFC标签上读写ndef消息。我的应用程序可以在NDEF消息中读取和写入两条NDEF记录。但当我展示一个在NDEF消息中只有一条NDEF记录的标签时,应用程序崩溃了。我知道背后的原因。我也知道如何解决它,但要解决它,我需要知道如何获得NDEF消息中的记录数?