Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit SQL eine Zahlenfolge zwischen zwei gegebenen Werten generieren?

Wie kann ich mit SQL eine Zahlenfolge zwischen zwei gegebenen Werten generieren?

DDD
Freigeben: 2025-01-20 03:06:10
Original
552 Leute haben es durchsucht

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

Nummernkreise mit SQL generieren

Müssen Sie eine Zahlenfolge zwischen zwei angegebenen Werten (z. B. 1000 und 1050) in einer SQL-Datenbank erstellen? Dieser Artikel demonstriert effiziente Methoden mit VALUES- und JOIN-Operationen.

Die Kernidee besteht darin, mit VALUES eine Reihe von Zahlen zu generieren und diese dann mit JOIN zu einem größeren Bereich zusammenzufassen. Dieser Ansatz lässt sich leicht skalieren, um durch Erweitern der Abfrage Hunderttausende Zeilen zu generieren.

Hier ist eine kompakte Lösung:

<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>
Nach dem Login kopieren

Eine explizitere Methode ist:

<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>
Nach dem Login kopieren

Beide Beispiele können durch Hinzufügen einer WHERE-Klausel angepasst werden, um bestimmte Bereiche zu generieren. Erwägen Sie bei häufiger Verwendung die Erstellung einer Tabellenwertfunktion zur Wiederverwendbarkeit.

Das obige ist der detaillierte Inhalt vonWie kann ich mit SQL eine Zahlenfolge zwischen zwei gegebenen Werten generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage