mam tej kwerendy SQL:Jak sprawdzić, czy serwer SQL przycina wynik, jeśli używane jest TOP?
SELECT TOP 10 * FROM MyTable
Jak mogę stwierdzić, czy wyniki były krótko obcięte, tj MojaTabela faktycznie ma więcej niż 10 wierszy?
mam tej kwerendy SQL:Jak sprawdzić, czy serwer SQL przycina wynik, jeśli używane jest TOP?
SELECT TOP 10 * FROM MyTable
Jak mogę stwierdzić, czy wyniki były krótko obcięte, tj MojaTabela faktycznie ma więcej niż 10 wierszy?
Możesz użyć numeru COUNT
, aby uzyskać całkowitą liczbę wierszy.
SELECT COUNT(*)
FROM MyTable
Możesz sprawdzić, czy ten wynik jest większy niż 10, aby określić, czy ma więcej niż 10 wierszy.
Możesz zwrócić całkowitą liczbę wierszy, używając count(*)
jako dodatkowej kolumny.
coś takiego:
select top 10 T1.*, T2.Total
from MyTable as T1
outer apply (select count(*) as Total from MyTable) as T2
Najprostszym sposobem jest dodanie kolumny COUNT..OVER że Zwraca całkowity wierszy w tabeli w tym samym zapytaniu:
SELECT TOP 10 *, COUNT(*) OVER() As TotalRows FROM MyTable
Ta suma jest obliczone po klauzule FROM i WHERE są wykonywane, ale przed stosuje się klauzulę TOP.
Cholera. brakowało o 2 sekundy ... przegłosowano. –
Jednak myślę, że chciałbym również zwrócić uwagę na fakt, że wybieranie rekordów top x bez klauzuli order by jest nonsensowne. –
@ZoharPeled Zgodne. – RBarryYoung
Cheat:
SELECT TOP 11 * FROM MyTable
i sprawdzić, czy znajduje się 11 rzędów :-) Potem ignorować jedenastym wierszu. Zauważ, że na podstawie komentarza, który napisałeś, być może nie zrozumiałeś: robisz to zapytanie zamiast zapytania TOP 10
.
Jeśli istnieje < = 10 wierszy, wówczas cały zestaw wyników zostałby zwrócony przez TOP 10
. Jeśli jest 11 rzędów, to oczywiście nie wystarczyłoby TOP 10
.
p.s. Powodem, dla którego mnie to interesuje, jest to, że jeśli jest więcej wyników, chcę zarejestrować fakt, że zestaw wyników został skrócony. Jeśli nie dodaję żadnego limitu, zestaw wyników może być ogromny, co oznaczałoby, że serwer SQL przestałby działać. – Contango
Wykonaj TOP 11, a zobaczysz. – jarlh
Zapytanie do góry 11 i używanie tylko 10 wierszy –