Maison >base de données >tutoriel mysql >Comment puis-je simuler la clause LIMIT de MySQL dans Microsoft SQL Server 2000 ?

Comment puis-je simuler la clause LIMIT de MySQL dans Microsoft SQL Server 2000 ?

DDD
DDDoriginal
2025-01-08 07:30:41368parcourir

How Can I Simulate MySQL's LIMIT Clause in Microsoft SQL Server 2000?

Réplication de LIMIT de MySQL dans Microsoft SQL Server 2000

La clause LIMIT de MySQL simplifie la récupération de sous-ensembles de lignes spécifiques. SQL Server 2000 ne dispose pas directement de cette fonctionnalité, ce qui nécessite des solutions de contournement. Cet article explore plusieurs méthodes pour obtenir des résultats similaires.

Une méthode utilise des instructions SELECT imbriquées. Pour imiter LIMIT 10, 20 (décalage 10, récupérer 20), vous pouvez utiliser :

<code class="language-sql">SELECT TOP 20 *
FROM (
    SELECT TOP 30 *
    FROM mytable ORDER BY somecolumn
) z2
ORDER BY somecolumn DESC;</code>

Cela sélectionne les 30 premières lignes, puis, à partir de ce sous-ensemble, sélectionne les 20 premières.

Alternativement, si une colonne unique (par exemple, « clé ») existe, vous pouvez utiliser :

<code class="language-sql">SELECT TOP 20 *
FROM tablename
WHERE key NOT IN (
    SELECT TOP 10 key
    FROM tablename
    ORDER BY key
);</code>

Cela exclut les 10 premières lignes en fonction de la clé unique, renvoyant effectivement les 20 suivantes.

Limitations : L'approche de requête imbriquée peut être problématique pour la dernière « page » si le nombre total de lignes n'est pas un multiple de la taille de la page. La méthode de colonne unique nécessite une colonne unique appropriée. Une solution purement basée sur SQL et universellement applicable pour la réplication LIMIT dans SQL Server 2000 n'est pas réalisable. Cependant, ces techniques offrent des alternatives pratiques.

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