2013-03-23 6 views
5

У меня есть запрос следующим образом:получить количество запросов в SQL

SELECT TOP 100 * 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 

Как я могу подсчитать количество строк, возвращаемых запросом, исключая топ 100. Я хочу вернуть 100 записей обратно, а также поскольку общее количество записей затронуто. Есть ли более простой способ сделать это, а не просто написать весь запрос без ключевого слова top и включить счет? например:

SELECT COUNT(1) AS TableCount 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 
+0

Когда вы берете верхние русские записи, вы уже знаете, что нет записей, почему вам нужен счет? –

+0

Мое предположение: ему нужно количество строк всей таблицы (т. Е. Для разбивки на страницы). – scones

+0

Да, я хочу отобразить счет, чтобы пользователь знал об этом – Alice

ответ

2

Использование COUNT (1) OVER() Вы получите не из записей в таблице в колонке Total_count.

SELECT TOP 100 *, COUNT(1) OVER() as 'Total_Count' 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 
Смежные вопросы