如何在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 ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |