Maison >base de données >tutoriel mysql >Comment puis-je générer une série de nombres à l'aide de requêtes SQL ?

Comment puis-je générer une série de nombres à l'aide de requêtes SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-20 03:11:09499parcourir

How Can I Generate a Series of Numbers Using SQL Queries?

Utilisez une requête SQL pour générer une séquence de numéros

Lorsqu'il s'agit de données numériques, il est souvent nécessaire de générer une plage de nombres comprise entre deux valeurs spécifiques. SQL facilite cela en vous permettant de spécifier explicitement une plage de nombres ou d'utiliser une sous-requête.

Une solution consiste à utiliser le mot-clé VALUES pour créer une série de valeurs non persistantes. En utilisant des jointures croisées pour joindre ces valeurs, un grand nombre de combinaisons peuvent être générées. Cette méthode est simple et efficace.

Par exemple, si vous avez deux nombres d'entrée, disons 1000 et 1050, vous pouvez générer la séquence entière à l'aide de la requête suivante :

<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>

Cette requête générera une séquence de nombres de 1000 à 1050, chaque nombre occupant une ligne. Vous pouvez également créer une version plus détaillée de votre requête :

<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>

Les deux requêtes peuvent être étendues à une plage de nombres spécifique en ajoutant une clause WHERE. Pour améliorer la réutilisabilité, vous pouvez également définir une fonction table pour générer une plage numérique.

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