gpt4 book ai didi

sql - 如何在 SELECT T-SQL 命令的结果集中包含返回的行总数?

转载 作者:行者123 更新时间:2023-12-02 02:44:59 24 4
gpt4 key购买 nike

我想问是否有办法将总行数作为附加列包含在使用 Row_Number 命令从 TSQL 查询返回的结果集中。

例如,以类似于以下的形式从针对 Book 表的查询中获取结果集:

RowNum   BookId     BookTitle    TotalRows
--------------------------------------------
1 1056 Title1 5
2 1467 Title2 5
3 121 Title3 5
4 1789 Title4 5
5 789 Title5 5

该查询是在存储过程中实现的自定义分页功能的一部分。目标是仅返回当前页面索引的记录,并限制页面大小,同时还返回 select 语句中的记录总数,以确定结果集页面的总数。

最佳答案

在 SQL Server 2008 及更高版本中,添加 COUNT(*) OVER () 作为查询中的列名称之一,该列名称将填充总行数返回。

它在每一行中重复,但至少该值是可用的。

许多其他解决方案不起作用的原因是,对于非常大的结果集,直到迭代所有行之后您才会知道总数,这在许多情况下不切实际(尤其是顺序处理解决方案)。例如,此技术可以在调用第一个 IDataReader.Read() 后为您提供总计数。

select COUNT(*) OVER () as Total_Rows, ... from ...

关于sql - 如何在 SELECT T-SQL 命令的结果集中包含返回的行总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821380/

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