Maison > base de données > tutoriel mysql > Comment générer une plage de nombres en SQL entre des paramètres spécifiés ?

Comment générer une plage de nombres en SQL entre des paramètres spécifiés ?

Barbara Streisand
Libérer: 2025-01-20 03:21:10
original
267 Les gens l'ont consulté

How to Generate a Range of Numbers in SQL Between Specified Parameters?

Génération de séries de nombres séquentiels en SQL

Cet article montre comment générer une séquence de nombres dans une plage spécifiée en SQL. Imaginez avoir besoin d'une liste de nombres de 1 000 à 1 050, chacun sur une ligne distincte.

Méthode 1 : VALEURS et jointures croisées

Une technique utilise la clause VALUES pour créer des ensembles de nombres temporaires et les combine via des jointures croisées.

<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

Cela génère les nombres 0-9999. L'ajustement de la clause VALUES limite la sortie à la plage souhaitée.

Méthode 2 : Tableaux de chiffres individuels

Une approche plus explicite utilise des tableaux séparés pour les unités, les dizaines, les centaines et les milliers de places.

<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

Cela offre un contrôle précis sur le processus de génération de numéros et est facilement évolutif pour des plages plus larges. Les deux méthodes offrent des solutions flexibles pour créer des séquences numériques en SQL, adaptables à différents besoins.

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