Maison > base de données > tutoriel mysql > Comment limiter les résultats de la ligne dans les requêtes Oracle après la commande?

Comment limiter les résultats de la ligne dans les requêtes Oracle après la commande?

Susan Sarandon
Libérer: 2025-01-25 08:37:10
original
502 Les gens l'ont consulté

How to Limit Row Results in Oracle Queries After Ordering?

Le nombre de résultats après le tri dans la base de données Oracle

De nombreux utilisateurs de bases de données s'appuient sur les clauses limites de MySQL pour récupérer une plage spécifique après tri. Cependant, Oracle lui-même ne prend pas en charge les fonctions similaires. Oracle utilise la colonne Rownum Pseudo, qui est calculée avant l'ordre par. Lorsque vous essayez de limiter le nombre de lignes en fonction du tri, ce comportement peut provoquer des accidents.

Afin d'implémenter les restrictions similaires à MySQL dans Oracle, une solution est une sous-requête. Veuillez considérer l'exemple suivant:

Cette requête sera récupérée dans les 5 principales lignes de la colonne SAL.
<code class="language-sql">SELECT *
FROM (
    SELECT *
    FROM emp
    ORDER BY sal DESC
)
WHERE ROWNUM <= 5;</code>
Copier après la connexion

Afin d'améliorer la flexibilité, vous pouvez utiliser les méthodes suivantes:

Cette requête du fils vous permet de spécifier la limite inférieure et supérieure de la banque de recherche.
<code class="language-sql">SELECT *
FROM (
    SELECT *, ROWNUM AS rnum
    FROM (
        SELECT *
        FROM emp
        ORDER BY sal DESC
    ) AS a
)
WHERE rnum >= :MIN_ROW_TO_FETCH AND rnum <= :MAX_ROW_TO_FETCH;</code>
Copier après la connexion

De plus, Oracle 12C (12.1) présente une nouvelle grammaire:

Cette syntaxe fournit un moyen plus concis de limiter le nombre de résultats en fonction de la limite de tri.
<code class="language-sql">-- 获取前10个结果
SELECT *
FROM sometable
ORDER BY name
FETCH FIRST 10 ROWS ONLY;

-- 获取第20-30个结果行
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;</code>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal