Reguły programisty

SQL Server

Użycie opcji TOP do filtrowania danych w Transact-SQL dla SQL Server'a

Zwięzły opis komendy SELECT TOP w Transact-SQL

SQL Serverjob interviewTransact-SQL70-761

Opcja TOP pozwala zdefiniować liczbę zwracanych wierszy w zapytaniu SELECT. Można określić liczbę porządkową (np. SELECT TOP 3) lub procent (np. SELECT TOP 10 PERCENT).

Opcja TOP zależy od instrukcji ORDER BY w celu uzyskania zamierzonej uporządkowanej sekwencji wybranej liczby wierszy. Gdy nie użyje się klauzuli ORDER BY nie ma gwarancji tego, które wiersze zostaną zwrócone.

Dla przykładu:

zwraca dokładnie 3 wiersze według najnowszej daty zamówienia:

SalesOrderID CustomerID OrderDate
75084 11078 2014-06-30 00:00:00.000
75085 11927 2014-06-30 00:00:00.000
75086 28789 2014-06-30 00:00:00.000

Jak zobaczymy na kolejnym przykładzie, w tabeli występuje więcej wierszy spełniających warunek najnowszej daty, ale nie mogą zostać wyświetlone z powodu ścisłej postaci opcji TOP.

Aby zwrócić wszystkie wiersze najnowszych zamówień, spełniające warunek:"wybierz 3 najnowsze wiersze, przy czym jeśli istnieje więcej wierszy mających datę zamówienia równą ostaniej dacie zamówienia, pobierz również te dodatkowe wiersze" - należy użyć opcji TOP WITH TIES.

Po użyciu powyższego polecenia wynik jest szerszy:

SalesOrderID CustomerID OrderDate
75084 11078 2014-06-30 00:00:00.000
75085 11927 2014-06-30 00:00:00.000
75086 28789 2014-06-30 00:00:00.000
75087 11794 2014-06-30 00:00:00.000
75088 14680 2014-06-30 00:00:00.000
75089 19585 2014-06-30 00:00:00.000

Następny przykład pokazuje, jak zastosować opcję PERCENT (może być również użyta z opcją WITH TIES):

Tutorial statistics