Maison >base de données >tutoriel mysql >Comment générer une plage de nombres en SQL entre des paramètres spécifiés ?
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>
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>
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!