Maison >base de données >Oracle >Quelle est l'utilisation de rownum dans Oracle

Quelle est l'utilisation de rownum dans Oracle

WBOY
WBOYoriginal
2022-01-20 16:44:3615564parcourir

Dans Oracle, rownum est une colonne virtuelle introduite par Oracle. Elle n'est construite que lors d'une requête. Elle est utilisée pour limiter le nombre total de lignes renvoyées par la requête et attribuer le nombre de lignes renvoyées par la requête. à partir de 1 et ainsi de suite. Et rownum ne peut pas être préfixé par le nom d'une table.

Quelle est l'utilisation de rownum dans Oracle

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

Quelle est l'utilisation de rownum dans Oracle

Pour rownum, c'est le numéro que le système oracle attribue séquentiellement aux lignes renvoyées par la requête, la première ligne renvoyée reçoit la valeur 1, la deuxième ligne est 2, et ainsi de suite, Ce pseudo-champ peut être utilisé pour limiter le nombre total de lignes renvoyées par la requête, et rownum ne peut pas être préfixé par le nom d'une table.

rownum est une colonne virtuelle introduite par Oracle.
Cette colonne virtuelle n'existe pas physiquement, elle est construite uniquement lors de la requête. Les pseudo-colonnes sont généralement allouées librement et ne peuvent pas être modifiées par les utilisateurs.

Caractéristiques

À propos de rownum, il existe les principales caractéristiques suivantes :

1) rownum n'appartient à aucune table.

2) La condition préalable à l'existence de rownum est le tableau des résultats.

3) rownum commence toujours à 1.

4) rownum n'est généralement utilisé qu'avec

5) L'utilisation de rownum pour la requête de pagination nécessite de convertir rownum en une colonne réelle et d'interroger rownum.

2. Principe du mécanisme

L'utilisation de rownum peut paraître étrange, mais en fait ce sera très simple si vous comprenez le principe de son mécanisme.

Tout d’abord, faisons une expérience simple : supprimez tous les champs de la table double et supprimez le rownum.

Si nous utilisons la méthode d'écriture suivante : t.rownum

Quelle est lutilisation de rownum dans Oracle

Si nous exécutons de cette façon, une erreur 01747 sera rapportée :

Quelle est lutilisation de rownum dans Oracle

Car en fait, le champ rownum n'existe pas dans la table dual , nous ne pouvons donc pas utiliser le format t.rownum.

La façon correcte de l'écrire devrait être :

Quelle est lutilisation de rownum dans Oracle

Donc, rownum est une colonne virtuelle et n'appartient à aucune table.

Alors d'où vient cette chronique virtuelle. Nous faisons une expérience simple pour faciliter la compréhension :

Comme suit, nous avons une table simple : test_ljb, avec un total de dix enregistrements.

Nous ajoutons rownum.

Les résultats sont les suivants, faciles à comprendre. Dix enregistrements sont sélectionnés, le numéro de rangée varie de 1 à 10

Quelle est lutilisation de rownum dans Oracle

Nous ajoutons une condition de filtre de salaire :

Quelle est lutilisation de rownum dans Oracle

Les résultats sont les suivants : Trois enregistrements sont sélectionnés , rownum varie de 1 à 10 3

Quelle est lutilisation de rownum dans Oracle

Il est à noter que l'employé correspondant à rownum dans le deuxième tableau de résultats ne correspond pas au premier.

Par exemple : lorsque le numéro de ligne de la première table est 1, cela correspond à Arvin, et la deuxième table correspond à Oracle.

La raison est la suivante :

Parce que rownum est une pseudo-colonne ajoutée à l'ensemble de résultats, c'est-à-dire une colonne qui est ajoutée après que l'ensemble de résultats a été trouvé en premier.

En termes simples, rownum est le numéro de séquence des résultats qui remplissent les conditions. Il commence toujours à partir de 1, donc le résultat sélectionné ne peut pas sauter 1 et avoir d'autres valeurs supérieures à 1.

En d'autres termes, rownum est dynamique et change en temps réel en fonction du nouvel ensemble de résultats.

Tutoriel recommandé : "Tutoriel 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!

Déclaration:
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