加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:18:04 所属栏目:MsSql教程 来源:网络整理
导读:我想询问是否有一种方法可以使用Row_Number(SQL 2005)命令从TSQL查询的返回结果集中包含总行数(作为附加列). 例如,以与此类似的形式从Book表获取查询结果集: RowNum BookId BookTitle TotalRows--------------------------------------------1 1056 Title1 5
我想询问是否有一种方法可以使用Row_Number(SQL 2005)命令从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 ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读