2013-03-23 14 views
5

Ich habe eine Abfrage wie folgt:Abfrage Zählung in SQL bekommen

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

Wie kann ich die Anzahl der Zeilen abrufen, indem Sie die Abfrage mit Ausnahme der Top 100. Ich möchte zurück als auch die 100 Datensätze, um wieder zurück als die Gesamtzahl der betroffenen Datensätze. Gibt es einen einfacheren Weg, es zu tun, anstatt die gesamte Abfrage ohne das Top-Schlüsselwort und inklusive count erneut zu schreiben? zB:

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

Wenn Sie Top-N-Datensätze nehmen, kennen Sie bereits die Anzahl der Datensätze, warum benötigen Sie die Anzahl? –

+0

Meine Vermutung ist: Er benötigt die Anzahl der Zeilen der gesamten Tabelle (dh für die Seitenumbruch). – scones

+0

Ja, ich möchte auch die Anzahl anzeigen, damit der Benutzer davon weiß – Alice

Antwort

2

COUNT Verwendung (1) OVER() Sie werden die Anzahl der Datensätze in der Tabelle in TOTAL_COUNT Spalte erhalten.

SELECT TOP 100 *, COUNT(1) OVER() as 'Total_Count' 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 
Verwandte Themen