2013-03-23 16 views
5

Ho una domanda come segue:ottenere conteggio query in SQL

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

Come posso recuperare il conteggio di righe restituite dalla query escludendo le prime 100. Voglio restituire i 100 record schiena pure come il numero totale di record interessati. Esiste un modo più semplice per farlo invece di scrivere di nuovo l'intera query senza la parola chiave principale e incluso il conteggio? esempio:

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

quando si stanno registrando i primi record, si conosce già il numero di record, perché è necessario il conteggio? –

+0

La mia ipotesi è: ha bisogno della quantità di righe dell'intera tabella (cioè per l'impaginazione). – scones

+0

sì, voglio visualizzare anche il conteggio in modo che l'utente lo sappia – Alice

risposta

2

Utilizzando COUNT (1) OVER() Si otterrà il no di record nella tabella nella colonna 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.........