Instruction de requête d'intervalle d'Oracle : 1. Instruction "select * from table name which rownum
L'environnement d'exploitation de ce tutoriel : système Windows 10, Oracle version 12c, ordinateur Dell G3.
Oracle utilise le mot-clé rownum pour implémenter ce type de requête :
⾸ Tout d'abord, supposons qu'il existe une zone de table d'informations géographiques et que sa structure de table est celle indiquée dans la figure ci-dessous :
Les données du tableau sont telles qu'indiquées ci-dessous (le résultat de l'instruction select * from Area) :
1) Interrogez les 8 premiers enregistrements du tableau
select * from area where rownum <= 8
Les résultats de la requête sont les suivants :
2) Interrogez le 2e au 8e enregistrement
Pour cette forme de requête, Oracle n'est pas aussi pratique que MySQL. Il doit être implémenté à l'aide de sous-requêtes ou d'opérations d'ensemble. Nous pouvons utiliser les trois méthodes suivantes pour y parvenir :
A: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num between 2 and 8;
※ Tout d'abord, obtenez une table temporaire basée sur l'identifiant sélectionné, la province, la ville, le district, le numéro de ligne de la zone. Il y a une colonne de numéro de ligne dans cette table temporaire (un pseudo. column, similaire à
rowid, mais différent de rowid, car rowid est une colonne physiquement existante, c'est-à-dire que toute table dans Oracle a une colonne rowid, et rownum n'existe pas physiquement),
Ensuite, interrogez dans le temporaire tableau.
B: select * from area where rownum <= 8 minus select * from area where rownum < 2;
Utilisez l'opérateur de soustraction défini moins, qui renvoie les enregistrements qui apparaissent dans la première sélection mais pas dans la seconde sélection.
C: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num >=2 intersect
select * from zone which rownum
Utilisez l'opérateur d'intersection défini intersect, qui fait un détour (mais ce détour implémente la requête où rownum est supérieur à un certain nombre), c'est d'abord utiliser la méthode de A pour interroger pour obtenir tous les enregistrements avec
rownum supérieur à 2, puis effectuer une opération d'intersection avec l'enregistrement défini avec rownum inférieur ou égal à 8. Les résultats obtenus par les trois opérations sont les mêmes, comme le montre la figure ci-dessous :
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!