Maison >base de données >Oracle >Quelle est l'utilisation de rownum dans Oracle
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.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
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
Si nous exécutons de cette façon, une erreur 01747 sera rapportée :
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 :
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
Nous ajoutons une condition de filtre de salaire :
Les résultats sont les suivants : Trois enregistrements sont sélectionnés , rownum varie de 1 à 10 3
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!