Maison > base de données > tutoriel mysql > Comment puis-je générer une séquence de nombres entre deux valeurs données à l'aide de SQL ?

Comment puis-je générer une séquence de nombres entre deux valeurs données à l'aide de SQL ?

DDD
Libérer: 2025-01-20 03:06:10
original
512 Les gens l'ont consulté

How Can I Generate a Sequence of Numbers Between Two Given Values Using SQL?

Génération de plages de numéros avec SQL

Besoin de créer une séquence de nombres entre deux valeurs spécifiées (par exemple, 1000 et 1050) dans une base de données SQL ? Cet article présente des méthodes efficaces utilisant les opérations VALUES et JOIN.

L'idée principale est de générer un ensemble de nombres en utilisant VALUES, puis d'utiliser JOIN pour les combiner dans une plage plus large. Cette approche évolue facilement pour générer des centaines de milliers de lignes en élargissant la requête.

Voici une solution compacte :

<code class="language-sql">WITH x AS (SELECT n FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) v(n))
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
FROM x ones, x tens, x hundreds, x thousands
ORDER BY 1</code>
Copier après la connexion

Une méthode plus explicite est :

<code class="language-sql">SELECT ones.n + 10*tens.n + 100*hundreds.n + 1000*thousands.n
FROM (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) tens(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) hundreds(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) thousands(n)
ORDER BY 1</code>
Copier après la connexion

Les deux exemples peuvent être personnalisés pour générer des plages spécifiques en ajoutant une clause WHERE. Pour une utilisation fréquente, envisagez de créer une fonction table pour la réutilisabilité.

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