Maison > base de données > Oracle > le corps du texte

Qu'est-ce que l'instruction de requête d'intervalle d'Oracle ?

WBOY
Libérer: 2022-06-10 17:09:18
original
3499 Les gens l'ont consulté

Instruction de requête d'intervalle d'Oracle : 1. Instruction "select * from table name which rownum

Qu'est-ce que l'instruction de requête d'intervalle d'Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, Oracle version 12c, ordinateur Dell G3.

Qu'est-ce que l'instruction de requête d'intervalle d'Oracle ?

Oracle utilise le mot-clé rownum pour implémenter ce type de requête :

Quest-ce que linstruction de requête dintervalle dOracle ?

⾸ 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 :

Quest-ce que linstruction de requête dintervalle dOracle ?

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
Copier après la connexion

Les résultats de la requête sont les suivants :

Quest-ce que linstruction de requête dintervalle dOracle ?

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;
Copier après la connexion

※ 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;
Copier après la connexion

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
Copier après la connexion

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 :

Quest-ce que linstruction de requête dintervalle dOracle ?

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal