我使用SQL Server 2005中的row_number over()功能进行了一次昂贵的查询.在查询被分页时,我只返回这些记录的子列表.但是,我还想返回记录总数,而不仅仅是分页子集.有效地运行查询两次以获得计数是不可能的.
选择计数(*)也是不可能的,因为当我尝试这个时表现非常糟糕.
我真正喜欢的是@@ ROW_NUMBERROWCOUNT :-)
我想用分页进行数据库查询.所以,我使用了一个通用表表达式和一个排名函数来实现这一点.看下面的例子.
declare @table table (name varchar(30));
insert into @table values ('Jeanna Hackman');
insert into @table values ('Han Fackler');
insert into @table values ('Tiera Wetherbee');
insert into @table values ('Hilario Mccray');
insert into @table values ('Mariela Edinger');
insert into @table values ('Darla Tremble');
insert into @table values ('Mammie Cicero');
insert into @table values ('Raisa Harbour');
insert into @table values ('Nicholas Blass');
insert into @table values ('Heather Hayashi');
declare @pagenumber int = 2;
declare @pagesize int = 3;
declare @total int;
with …Run Code Online (Sandbox Code Playgroud)