Verwenden Sie eine SQL-Abfrage, um eine Zahlenfolge zu generieren
Beim Umgang mit numerischen Daten ist es oft notwendig, einen Zahlenbereich zwischen zwei spezifischen Werten zu generieren. SQL macht dies einfach, indem es Ihnen ermöglicht, explizit einen Zahlenbereich anzugeben oder eine Unterabfrage zu verwenden.
Eine Möglichkeit besteht darin, das Schlüsselwort VALUES zu verwenden, um eine Reihe nicht persistenter Werte zu erstellen. Durch die Verwendung von Cross-Joins zum Verbinden dieser Werte kann eine große Anzahl von Kombinationen generiert werden. Diese Methode ist einfach und effizient.
Wenn Sie beispielsweise zwei Eingabezahlen haben, beispielsweise 1000 und 1050, können Sie die gesamte Sequenz mit der folgenden Abfrage generieren:
<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>
Diese Abfrage generiert eine Zahlenfolge von 1000 bis 1050, wobei jede Zahl eine Zeile einnimmt. Alternativ können Sie eine detailliertere Version Ihrer Abfrage erstellen:
<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>
Beide Abfragen können durch Hinzufügen einer WHERE-Klausel auf einen bestimmten Zahlenbereich erweitert werden. Um die Wiederverwendbarkeit zu verbessern, können Sie auch eine Tabellenwertfunktion definieren, um einen numerischen Bereich zu generieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SQL-Abfragen eine Zahlenreihe generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!