SQL SELECT TOP கிளாஸ்
SELECT TOP கிளாஸ் திரும்பப் பெற வேண்டிய பதிவுகளின் எண்ணிக்கையைக் குறிப்பிட பயன்படுகிறது.
SELECT TOP கிளாஸ் ஆயிரக்கணக்கான பதிவுகளைக் கொண்ட பெரிய அட்டவணைகளில் பயனுள்ளதாக இருக்கும். பெரிய எண்ணிக்கையிலான பதிவுகளைத் திரும்பப் பெறுவது செயல்திறனைப் பாதிக்கும்.
உதாரணம்
Customers அட்டவணையின் முதல் 3 பதிவுகளை மட்டும் தேர்ந்தெடுக்கவும்:
SELECT TOP 3 * FROM Customers;
குறிப்பு:
அனைத்து தரவுத்தள அமைப்புகளும் 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;
ஆர்ப்பாட்ட தரவுத்தளம்
உதாரணங்களில் பயன்படுத்தப்படும் Customers அட்டவணையிலிருந்து ஒரு தேர்வு கீழே உள்ளது:
| 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 |
LIMIT உதாரணங்கள்
பின்வரும் SQL அறிக்கை MySQLக்கான சமமான உதாரணத்தைக் காட்டுகிறது:
உதாரணம்
Customers அட்டவணையின் முதல் 3 பதிவுகளைத் தேர்ந்தெடுக்கவும்:
SELECT * FROM Customers
LIMIT 3;
FETCH FIRST உதாரணங்கள்
பின்வரும் SQL அறிக்கை Oracleக்கான சமமான உதாரணத்தைக் காட்டுகிறது:
உதாரணம்
Customers அட்டவணையின் முதல் 3 பதிவுகளைத் தேர்ந்தெடுக்கவும்:
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
TOP PERCENT உதாரணங்கள்
பின்வரும் 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 அறிக்கை "Germany" நாடு உள்ள "Customers" அட்டவணையிலிருந்து முதல் மூன்று பதிவுகளைத் தேர்ந்தெடுக்கிறது (SQL Server/MS Accessக்கு):
உதாரணம்
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 Server மற்றும் MS Accessக்கு:
உதாரணம்
முடிவை CustomerName மூலம் தலைகீழ் அகரவரிசையில் வரிசைப்படுத்தி, முதல் 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;
- SELECT TOP பயன்படுத்துகிறது
- PERCENT ஆதரவு உள்ளது
- மைக்ரோசாப்ட் தயாரிப்பு
MySQL
SELECT * FROM table_name
LIMIT 5;
- LIMIT பயன்படுத்துகிறது
- OFFSET ஆதரவு உள்ளது
- Oracle தயாரிப்பு
Oracle
SELECT * FROM table_name
FETCH FIRST 5 ROWS ONLY;
- FETCH FIRST பயன்படுத்துகிறது
- ROWNUM ஆதரவு உள்ளது
- பழைய தொடரியல் உள்ளது
பயிற்சி
SQL Server இல் பின்வரும் கேள்வி என்ன செய்யும்?
SELECT TOP 5 * FROM Customers;
SELECT TOP 5 * FROM Customers;