एसक्यूएल सेलेक्ट टॉप क्लास
SELECT TOP वर्ग का उपयोग लौटाए जाने वाले रिकॉर्ड की संख्या निर्दिष्ट करने के लिए किया जाता है।
हजारों रिकॉर्ड्स वाली बड़ी तालिकाओं में SELECT TOP क्लास उपयोगी है। बड़ी संख्या में रिकॉर्ड लौटाने से प्रदर्शन प्रभावित हो सकता है।
उदाहरण
ग्राहक तालिका के केवल पहले 3 रिकॉर्ड चुनें:
SELECT TOP 3 * FROM Customers;
नोट:
सभी डेटाबेस सिस्टम SELECT TOP क्लास का समर्थन नहीं करते हैं। MySQL सीमित संख्या में रिकॉर्ड चुनने के लिए LIMIT क्लास का समर्थन करता है, जबकि Oracle FETCH FIRST n ROWS ONLY और ROWNUM का उपयोग करता है।
डेटाबेस सिंटैक्स की तुलना
एसक्यूएल सर्वर/एमएस एक्सेस सिंटैक्स
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MySQL सिंटेक्स
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
ओरेकल 12 सिंटैक्स
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
पुराना ओरेकल सिंटैक्स
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
प्रदर्शन डेटाबेस
नीचे उदाहरणों में प्रयुक्त ग्राहक तालिका से एक चयन दिया गया है:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
उदाहरण सीमित करें
निम्नलिखित SQL कथन MySQL के लिए एक समकक्ष उदाहरण दिखाता है:
उदाहरण
ग्राहक तालिका के पहले 3 रिकॉर्ड चुनें:
SELECT * FROM Customers
LIMIT 3;
पहले उदाहरण प्राप्त करें
निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:
उदाहरण
ग्राहक तालिका के पहले 3 रिकॉर्ड चुनें:
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
शीर्ष प्रतिशत के उदाहरण
निम्नलिखित SQL कथन "ग्राहक" तालिका (SQL सर्वर/MS एक्सेस के लिए) से पहले 50% रिकॉर्ड का चयन करता है:
उदाहरण
SELECT TOP 50 PERCENT * FROM Customers;
निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:
उदाहरण
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
जहां कक्षा उदाहरण
निम्नलिखित SQL कथन "जर्मनी" देश के साथ "ग्राहक" तालिका से पहले तीन रिकॉर्ड का चयन करता है (SQL सर्वर/एमएस एक्सेस के लिए):
उदाहरण
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
MySQL
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
Oracle
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;
ORDER BY के उदाहरण
जब आप परिणाम को सॉर्ट करना चाहते हैं तो ORDER BY कीवर्ड जोड़ें और सॉर्ट किए गए परिणाम के पहले 3 रिकॉर्ड लौटाएं।
SQL सर्वर और MS एक्सेस के लिए:
उदाहरण
परिणाम को ग्राहक नाम के अनुसार वर्णानुक्रम में क्रमबद्ध करें और पहले 3 रिकॉर्ड लौटाएँ:
SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;
MySQL
SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;
Oracle
SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;
डेटाबेस तुलना
SQL Server
SELECT TOP 5 *
FROM table_name;
- शीर्ष उपयोग चुनें
- प्रतिशत समर्थन है
- एक माइक्रोसॉफ्ट उत्पाद
MySQL
SELECT * FROM table_name
LIMIT 5;
- LIMIT का प्रयोग किया जाता है
- ऑफसेट समर्थन उपलब्ध है
- एक Oracle उत्पाद
Oracle
SELECT * FROM table_name
FETCH FIRST 5 ROWS ONLY;
- FETCH FIRST का उपयोग करना
- ROWNUM समर्थित है
- एक पुराना वाक्यविन्यास है
अभ्यास
उत्तर
SELECT TOP 5 * FROM Customers;
SELECT TOP 5 * FROM Customers;