Heim > Datenbank > MySQL-Tutorial > Wie kann ich einen Zahlenbereich in SQL nur mithilfe von Abfragen generieren?

Wie kann ich einen Zahlenbereich in SQL nur mithilfe von Abfragen generieren?

Barbara Streisand
Freigeben: 2025-01-20 03:16:13
Original
554 Leute haben es durchsucht

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

Reine SQL-Abfrage zur Generierung einer numerischen Sequenz

In SQL können Sie mithilfe nicht persistenter Werte (Schlüsselwort VALUES) und JOIN-Operationen eine Zahlenfolge innerhalb eines bestimmten Bereichs generieren.

Einfache 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

Dieses Schema generiert einen Zahlenbereich, indem ein kartesisches Produkt aus vier Werten erstellt wird, die Einheiten, Zehner, Hunderter und Tausender darstellen. Die Funktion ROW_NUMBER() weist eindeutige Zeilennummern in der gewünschten Reihenfolge zu.

Detaillierter Plan:

<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

Dieses Schema berechnet numerische Werte explizit durch Addition von Werten in Einer-, Zehner-, Hunderter- und Tausenderstellen. Beide Szenarien können mit einer WHERE-Klausel erweitert werden, um einen Zahlenbereich anzugeben. Für größere Bereiche können Tabellenwertfunktionen erstellt werden, um Code wiederzuverwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Zahlenbereich in SQL nur mithilfe von Abfragen 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage