2013-03-23 15 views
5

Mam zapytanie co następuje:uzyskać liczbę zapytań w SQL

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

Jak mogę pobrać liczby wierszy zwracanych przez zapytanie bez górnej 100. Chcę wrócić 100 rekordy z powrotem, jak również w związku z całkowitą liczbą rekordów. Czy jest prostszy sposób, aby to zrobić, zamiast pisać całe zapytanie ponownie bez górnego słowa kluczowego i wliczając liczbę? np

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

kiedy bierzesz n najwyższe rekordy, już znasz liczbę rekordów, dlaczego potrzebujesz tej liczby? –

+0

Moje przypuszczenie: potrzebuje liczby wierszy z całej tabeli (np. Dla stronicowania). – scones

+0

tak, chcę wyświetlić liczbę tak, aby użytkownik o tym wiedział – Alice

Odpowiedz

2

Korzystanie count (1) OVER() dostaniesz bez zapisów w tabeli w kolumnie 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......... 
Powiązane problemy