ホームページ > データベース > mysql チュートリアル > SQLで指定されたパラメータ間の数値範囲を生成するにはどうすればよいですか?

SQLで指定されたパラメータ間の数値範囲を生成するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-20 03:21:10
オリジナル
224 人が閲覧しました

How to Generate a Range of Numbers in SQL Between Specified Parameters?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート