Maison > base de données > tutoriel mysql > Comment puis-je générer une plage de nombres en SQL en utilisant uniquement des requêtes ?

Comment puis-je générer une plage de nombres en SQL en utilisant uniquement des requêtes ?

Barbara Streisand
Libérer: 2025-01-20 03:16:13
original
554 Les gens l'ont consulté

How Can I Generate a Range of Numbers in SQL Using Only Queries?

Requête SQL pure pour générer une séquence numérique

En SQL, en utilisant des valeurs non persistantes (mot-clé VALUES) et des opérations JOIN, vous pouvez générer une séquence de nombres dans une plage spécifiée.

Solution simple :

<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

Ce schéma génère une plage de nombres en créant un produit cartésien de quatre valeurs représentant les unités, les dizaines, les centaines et les milliers. La fonction ROW_NUMBER() attribue des numéros de ligne uniques dans l'ordre souhaité.

Plan détaillé :

<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

Ce schéma calcule explicitement les valeurs numériques en ajoutant des valeurs en unités, dizaines, centaines et milliers de places. Les deux scénarios peuvent être étendus avec une clause WHERE pour spécifier une plage de nombres. Pour des portées plus grandes, des fonctions table peuvent être créées pour réutiliser le code.

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