sql-server – 在SQL Server 2012中获取总计数以及分页的更好方
发布时间:2020-12-12 16:48:17 所属栏目:MsSql教程 来源:网络整理
导读:我有要求得到记录的总数以及分页.目前,我正在SQL Server 2012中列出如下所示.这需要一个单独的查询才能得到计数. SQL Server 2012中有没有改进的方法? ALTER PROCEDURE dbo.tpGetPageRecords( @OffSetRowNo INT,@FetchRowNo INT,@TotalCount INT OUT) AS SEL
我有要求得到记录的总数以及分页.目前,我正在SQL Server 2012中列出如下所示.这需要一个单独的查询才能得到计数. SQL Server 2012中有没有改进的方法?
ALTER PROCEDURE dbo.tpGetPageRecords ( @OffSetRowNo INT,@FetchRowNo INT,@TotalCount INT OUT ) AS SELECT CSTNO,CSTABBR FROM DBATABC WHERE CSTABBR LIKE 'A%' ORDER BY CSTNO OFFSET ( @OffSetRowNo-1 ) * @FetchRowNo ROWS FETCH NEXT @FetchRowNo ROWS ONLY SET @TotalCount = (SELECT COUNT(*) FROM DBATABC WHERE CSTABBR LIKE 'A%') GO 解决方法如果我们被允许更改合同,您可以:SELECT CSTNO,CSTABBR,COUNT(*) OVER () as TotalCount FROM DBATABC WHERE CSTABBR LIKE 'A%' ORDER BY CSTNO OFFSET ( @OffSetRowNo-1 ) * @FetchRowNo ROWS FETCH NEXT @FetchRowNo ROWS ONLY 现在,总计将作为结果集中的单独列提供.不幸的是,没有办法把这个值赋给同一个语句中的一个变量,所以我们不能再提供它作为一个OUT参数. 这使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |