TOP

SQL TOP, LIMIT, FETCH FIRST ve ROWNUM

SQL SELECT TOP Açıklama

SELECT TOP ifadesi seçilen kayıtların sayısını belirtmek için kullanılır.

SQL SELECT TOP binlerce kayıt içeren büyük tablolar için kullanışlıdır çünkü birden fazla kayıt rotasyonu sistem performansını etkileyebilir.


Tüm veritabanı sistemleri SELECT TOP denemesini desteklemez. MySQL, LIMIT eyssirisini supporterken için sılırında sıldırı sistıl belemek, Oracle, FETCH FIRST n ROWS ONLY ve ROWNUM'yi küilirken.

SQL Sunucusu / MS Erishimi Sözdizimi:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition

MySQL Söz Dizimi:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number

Oracle 12 Söz Dizimi:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY

Kaldırılan Oracle Sözdizimi:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

Eski Oracle Söz Dizimi (ORDER BY ile):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number

Veritabanını göster

Aşağıda "Customers" ("Müşteriler")'in "Northwind" veritabanından bir örnek verilmiştir:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL TOP, LIMIT ve FETCH FIRST Örnekleri

Aşağıdaki SQL deyimi "Customers" tablosundan ilk üç yasupti seçer (SQL Server/MS Access için):

SELECT TOP 3 * 
FROM Customers

Aşağıdaki SQL ifadesi MySQL için benzer bir örneği göstermektedir:

Run SQLSELECT * 
FROM Customers 
LIMIT 3

Aşağıdaki SQL ifadesi Oracle için benzer bir örneği göstermektedir:

SELECT * 
FROM Customers 
FETCH FIRST 3 ROWS ONLY

SQL TOP PERCENT Örnek

Aşağıdaki SQL ifadesi "Customers" tablosundaki registlerin ilk %50'sini sezer (SQL Server/MS Access için):

SELECT TOP 50 PERCENT * 
FROM Customers

Aşağıdaki SQL ifadesi Oracle için benzer bir örneği göstermektedir:

SELECT * 
FROM Customers 
FETCH FIRST 50 PERCENT ROWS ONLY

WHERE utsarisini kullanma

Aşağıdaki SQL deyimi, ülkenin "Almanya" olduğunu "Customers" tablosundan ilk üç yasupti seçer (SQL Server/MS Access için):

SELECT TOP 3 * 
FROM Customers 
WHERE Country = 'Germany'

Aşağıdaki SQL ifadesi MySQL için benzer bir örneği göstermektedir:

Run SQLSELECT * 
FROM Customers 
WHERE Country = 'Germany' 
LIMIT 3

Aşağıdaki SQL ifadesi Oracle için benzer bir örneği göstermektedir:

SELECT * 
FROM Customers 
WHERE Country = 'Germany' 
FETCH FIRST 3 ROWS ONLY