TOP

SQL TOP, LIMIT, FETCH FIRST और ROWNUM

SQL SELECT TOP विवरण

अभिव्यक्ति SELECT TOP का उपयोग चयन करने के लिए रिकॉर्ड की संख्या निर्दिष्ट करने के लिए किया जाता है।

SQL SELECT TOP हजारों रिकॉर्ड वाली बड़ी तालिकाओं के लिए उपयोगी है, क्योंकि बड़ी संख्या में रिकॉर्ड वापस करने से सिस्टम प्रदर्शन प्रभावित हो सकता है।


सभी डेटाबेस सिस्टम SELECT TOP अभिव्यक्ति का समर्थन नहीं करते हैं। MySQL सीमित संख्या में रिकॉर्ड चुनने के लिए अभिव्यक्ति LIMIT का समर्थन करता है, जबकि Oracle FETCH FIRST n ROWS ONLY और ROWNUM का उपयोग करता है।

SQL Server / MS Access सिंटैक्स:

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

MySQL सिंटैक्स:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number

Oracle 12 सिंटैक्स:

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

अस्वीकृत Oracle सिंटैक्स:

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

अप्रचलित Oracle सिंटेक्स (ORDER BY के साथ):

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

प्रदर्शन डेटाबेस

निम्नलिखित "Northwind" डेटाबेस की "Customers" ("ग्राहक") तालिका से एक नमूना है:

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 और FETCH FIRST उदाहरण

निम्नलिखित SQL कथन "Customers" तालिका से पहले तीन रिकॉर्ड का चयन करता है (SQL Server/MS Access के लिए):

SELECT TOP 3 * 
FROM Customers

निम्नलिखित SQL कथन MySQL के लिए एक समकक्ष उदाहरण दिखाता है:

Run SQLSELECT * 
FROM Customers 
LIMIT 3

निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:

SELECT * 
FROM Customers 
FETCH FIRST 3 ROWS ONLY

SQL TOP प्रतिशत उदाहरण

निम्नलिखित SQL कथन "Customers" तालिका से पहले 50% रिकॉर्ड का चयन करता है (SQL Server/MS Access के लिए):

SELECT TOP 50 PERCENT * 
FROM Customers

निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:

SELECT * 
FROM Customers 
FETCH FIRST 50 PERCENT ROWS ONLY

WHERE अभिव्यक्ति का उपयोग करना

निम्नलिखित SQL कथन तालिका "Customers" से पहले तीन रिकॉर्ड का चयन करता है जहां देश "जर्मनy" है (SQL Server/MS Access के लिए):

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

निम्नलिखित SQL कथन MySQL के लिए एक समकक्ष उदाहरण दिखाता है:

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

निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:

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