SQL - Clause TOP, LIMIT ou ROWNUM

Le SQL TOP La clause est utilisée pour extraire un nombre TOP N ou X pourcent d'enregistrements d'une table.

Note- Toutes les bases de données ne prennent pas en charge la clause TOP. Par exemple, MySQL prend en charge leLIMIT clause pour récupérer un nombre limité d'enregistrements pendant qu'Oracle utilise ROWNUM commande pour récupérer un nombre limité d'enregistrements.

Syntaxe

La syntaxe de base de la clause TOP avec une instruction SELECT serait la suivante.

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

Exemple

Considérez la table CUSTOMERS ayant les enregistrements suivants -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

La requête suivante est un exemple sur le serveur SQL, qui extrait les 3 premiers enregistrements de la table CUSTOMERS.

SQL> SELECT TOP 3 * FROM CUSTOMERS;

Cela produirait le résultat suivant -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Si vous utilisez un serveur MySQL, voici un exemple équivalent -

SQL> SELECT * FROM CUSTOMERS
LIMIT 3;

Cela produirait le résultat suivant -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Si vous utilisez un serveur Oracle, le bloc de code suivant a un exemple équivalent.

SQL> SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;

Cela produirait le résultat suivant -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+