2

我目前有两个单独的查询:

1) 根据各种过滤器返回实际结果集。

select a, b, c from TableA
where x = 123
and y = 'ABC'
and z = 999

2) 显示总行数。

select count(*) from TableA
where x = 123
and y = 'ABC'
and z = 999

所以简而言之,我两次运行相同的查询。我在上面作为示例提出的查询比我使用多个连接和许多过滤器的查询要简单得多。

有没有更好的方法来实现同样的目标?

4

2 回答 2

4
select a, b, c, count(*) over() as total
from dbo.TableA
where x = 123
and y = 'ABC'
and z = 999;
于 2013-11-12T19:01:48.023 回答
0

您不能在第一个查询中将计数作为列返回吗?

例如

select a, b, c, count(*) as total from TableA
where x = 123
and y = 'ABC'
and z = 999

这样可以避免运行两次

于 2013-11-12T18:58:14.913 回答