SQL Select Top Clause (TOP, LIMIT, FETCH FIRST, ROWNUM)

SQL Select Top Clause क्या है?

SQL Select Top Clause का उपयोग SQL query के result में से limited number of rows दिखाने के लिए किया जाता है। जब किसी table में बहुत ज्यादा records होते हैं और हमें सिर्फ कुछ records ही देखने होते हैं, तब इस type की clause बहुत काम आती है।

आसान शब्दों में:
यह clause database से कहती है:
“मुझे पूरी table नहीं चाहिए, सिर्फ इतनी rows ही दिखाओ”

Select Top = result में सिर्फ उतनी ही rows दिखाओ जितनी चाहिए.

यह clause आमतौर पर इन situations में इस्तेमाल होती है:

  • Latest records देखने के लिए
  • Top students या top products निकालने के लिए
  • Large table से sample data देखने के लिए
  • Pagination बनाने के लिए

Different Databases में अलग Syntax क्यों होता है

SQL का concept standard है, लेकिन अलग–अलग databases ने limited rows दिखाने के लिए अपना–अपना syntax बनाया है। यानी काम सबका same है, फर्क सिर्फ लिखने के तरीके में है।

Concept सभी databases में same है.

Syntax database के अनुसार बदलता है.

DatabaseSyntax Keyword
SQL Server / MS AccessTOP
MySQL / PostgreSQL / SQLiteLIMIT
Oracle 12c+FETCH FIRST
Oracle पुराने versionROWNUM

अब हम हर syntax को example + explanation + result के साथ समझेंगे।

Example Table

हम पूरे chapter में इसी students table को मानकर चलेंगे:

idnameagecity
1Rahul21Delhi
2Aman23Jaipur
3Neha22Mumbai
4Rohit20Delhi
5Pooja24Pune

SQL TOP (SQL Server, MS Access)

TOP Basic Syntax

SELECT TOP number column_names
FROM table_name;

Example 1: TOP Basic Use (Top 3 records)

SELECT TOP 3 *
FROM students;

इस query का काम:

  • students table से data लेना
  • सिर्फ पहली 3 rows दिखाना

Result में क्या आएगा:

  • Rahul
  • Aman
  • Neha

यह query तब उपयोगी होती है जब:

  • आपको जल्दी से table का overview चाहिए
  • Sample data देखना हो

Example 2: TOP with ORDER BY

SELECT TOP 2 *
FROM students
ORDER BY age DESC;

इस query का काम:

  • पहले students को age के हिसाब से descending order में arrange करना
  • फिर सबसे ऊपर के 2 records दिखाना

Result में क्या आएगा:

  • Pooja (age 24)
  • Aman (age 23)

यह query उपयोग होती है:

  • Top age वाले students निकालने के लिए
  • Highest value वाले records देखने के लिए

SQL LIMIT (MySQL, PostgreSQL, SQLite)

LIMIT Basic Syntax

SELECT column_names
FROM table_name
LIMIT number;

Example 3: LIMIT Basic Use

SELECT *
FROM students
LIMIT 3;

इस query का काम:

  • students table से सिर्फ 3 rows return करना

Result:

  • Rahul
  • Aman
  • Neha

यह syntax MySQL में सबसे ज्यादा use होती है।

Example 4: LIMIT with ORDER BY

SELECT *
FROM students
ORDER BY age DESC
LIMIT 2;

इस query का काम:

  • Age के हिसाब से students को sort करना
  • फिर top 2 records दिखाना

Result:

  • Pooja
  • Aman

यह query real life में use होती है:

  • Top scorers
  • Most expensive products
  • Latest records

Example 5: LIMIT with OFFSET

SELECT *
FROM students
LIMIT 2 OFFSET 2;

इस query का मतलब:

  • पहले 2 records skip करो
  • उसके बाद अगले 2 records दिखाओ

Result:

  • Neha
  • Rohit

यह query mainly use होती है:

  • Pagination बनाने में
  • Page 2, Page 3 जैसे result दिखाने में

SQL FETCH FIRST (Oracle 12c+, DB2)

FETCH FIRST Syntax

SELECT column_names
FROM table_name
FETCH FIRST number ROWS ONLY;

Example 6: FETCH FIRST Basic Use

SELECT *
FROM students
FETCH FIRST 3 ROWS ONLY;

इस query का काम:

  • Table से सिर्फ पहली 3 rows दिखाना

Result:

  • Rahul
  • Aman
  • Neha

यह LIMIT जैसा ही काम करता है, बस syntax अलग है।

Example 7: FETCH FIRST with ORDER BY

SELECT *
FROM students
ORDER BY age DESC
FETCH FIRST 2 ROWS ONLY;

इस query का काम:

  • Age descending order में arrange करना
  • फिर top 2 records दिखाना

Result:

  • Pooja
  • Aman

SQL ROWNUM (Oracle Old Versions)

Oracle के पुराने versions में LIMIT या FETCH नहीं होता, वहाँ ROWNUM का उपयोग किया जाता है।

ROWNUM Syntax

SELECT column_names
FROM table_name
WHERE ROWNUM <= number;

Example 8: ROWNUM Basic Use

SELECT *
FROM students
WHERE ROWNUM <= 3;

इस query का काम:

  • Oracle को कहना कि सिर्फ पहली 3 rows ही दिखानी हैं

Result:

  • Rahul
  • Aman
  • Neha

यह पुराने Oracle databases में LIMIT की तरह काम करता है।

Example 9: ROWNUM with ORDER BY (Important Concept)

SELECT *
FROM (
  SELECT *
  FROM students
  ORDER BY age DESC
)
WHERE ROWNUM <= 2;

इस query का मतलब:

  • पहले अंदर वाली query age के हिसाब से data sort करती है
  • फिर बाहर वाली query top 2 rows निकालती है

Result:

  • Pooja
  • Aman

अगर subquery use नहीं की जाएगी तो गलत result आएगा।

TOP / LIMIT Without ORDER BY

ORDER BY के बिना LIMIT / TOP क्यों गलत हो सकता है?

अगर ORDER BY use नहीं किया गया, तो database any random order में rows return कर सकता है।

SELECT *
FROM students
LIMIT 3;

इस query में database किसी भी order में rows दिखा सकता है।
इसलिए best practice यह है:

  • हमेशा LIMIT / TOP को ORDER BY के साथ use करें

Common Beginner Mistakes

  • Database के हिसाब से गलत syntax use करना
  • ORDER BY skip कर देना
  • ROWNUM को direct ORDER BY के साथ लिखना
  • ORDER BY के बिना TOP या LIMIT use करना

Incorrect example:

SELECT *
FROM students
WHERE ROWNUM <= 2
ORDER BY age DESC;

Correct example:

SELECT *
FROM (
  SELECT *
  FROM students
  ORDER BY age DESC
)
WHERE ROWNUM <= 2;

Real Life Use Cases

  • Latest 10 records दिखाना
  • Top scoring students निकालना
  • Pagination बनाना
  • Large table से sample data देखना

Summary

  • TOP, LIMIT, FETCH FIRST और ROWNUM का काम same है
  • सभी limited rows दिखाने के लिए use होते हैं
  • Syntax database के अनुसार बदलता है
  • ORDER BY के साथ use करना सबसे सही तरीका है
  • Pagination और top records के लिए बहुत जरूरी concept है
Share your love