5

SQLServer2008クエリがあります

SELECT TOP 10 *
FROM T
WHERE ...
ORDER BY ...

行の総数も取得したいのですが。わかりやすい方法は、2番目のクエリを作成することです

SELECT COUNT(*)
FROM T
WHERE ...
ORDER BY ...

効率的な方法はありますか?

ありがとう

4

5 に答える 5

4

この答えにあるものはうまくいくようです:

https://stackoverflow.com/a/19125458/16241

基本的に、次のことを行います。

SELECT top 100 YourColumns, TotalCount = Count(*) Over()
From YourTable
Where SomeValue = 32

TotalCount には行の総数が含まれます。ただし、各行にリストされています。

これをテストしたところ、クエリ プランは、テーブルが 1 回しかヒットしていないことを示していました。

于 2015-07-27T22:09:16.460 に答える
1

2番目のクエリからもORDERBY句を削除します。

于 2009-03-04T15:01:30.507 に答える