SQL での連番シリーズの生成
この記事では、SQL で指定された範囲内の一連の数値を生成する方法を説明します。 1000 から 1050 までの数値のリストをそれぞれ別の行に配置する必要があると想像してください。
方法 1: VALUES とクロス結合
1 つの手法では、VALUES
句を使用して一時的な数値セットを作成し、それらをクロス結合で結合します。
<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>
これにより、0 ~ 9999 の数値が生成されます。 VALUES
句を調整すると、出力が目的の範囲に制限されます。
方法 2: 個別の桁テーブル
より明示的なアプローチでは、一の位、十の位、百の位、千の位に個別のテーブルを使用します。
<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>
これにより、数値生成プロセスを正確に制御でき、より大きな範囲に簡単に拡張できます。どちらの方法も、SQL で数値シーケンスを作成するための、さまざまなニーズに適応できる柔軟なソリューションを提供します。
以上がSQLで指定されたパラメータ間の数値範囲を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。