Maison >base de données >tutoriel mysql >Comment fonctionne ROWNUM dans les requêtes de pagination Oracle ?
La requête Select * From Person Where rownum > 100 and rownum < 200
renvoie un ensemble de résultats vide car ROWNUM attribue des numéros aux lignes au fur et à mesure de leur récupération. La clause WHERE
filtre après ROWNUM a attribué des numéros. Les lignes avec ROWNUM supérieur à 100 ne sont prises en compte que après que les 100 premières lignes ont déjà été traitées et affectées à des valeurs ROWNUM.
La fonctionnalité Top-n Row Limiting d'Oracle 12c offre une approche plus simple de la pagination. La syntaxe Select ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
sélectionne directement les lignes dans la plage spécifiée, éliminant ainsi le besoin de sous-requêtes.
Pour éviter d'afficher la colonne ROWNUM, répertoriez explicitement les colonnes souhaitées dans la liste SELECT
de la requête externe. Vous pouvez également créer une vue pour encapsuler la requête ou utiliser la commande NOPRINT
de SQL*Plus pour supprimer les sorties indésirables.
Une pagination précise avec ROWNUM dépend d'une construction correcte des requêtes. Il est essentiel de trier les résultats à l’aide d’un identifiant unique (clé primaire) pour garantir une sélection de lignes cohérente sur toutes les pages. Bien que la commande par ROWNUM elle-même n'annule pas FIRST_ROWS(N)
, l'utilisation d'un identifiant unique garantit la récupération des lignes souhaitées.
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!