ホームページ > データベース > mysql チュートリアル > SQL SELECT ステートメントで最初の N 個の正の整数を生成するにはどうすればよいですか?

SQL SELECT ステートメントで最初の N 個の正の整数を生成するにはどうすればよいですか?

DDD
リリース: 2024-12-24 14:35:15
オリジナル
297 人が閲覧しました

How Can I Generate the First N Positive Integers with a SQL SELECT Statement?

SQL SELECT を使用した最初の N 個の正の整数の生成

問題:

最初の整数の取得標準 SQL SELECT ステートメントのみを使用して N 個の正の整数を扱うには、課題が生じます。カウント テーブルに依存しない回避策はありますか?

回答:

一般的な SQL にはこの操作のネイティブ メソッドがありませんが、いくつかの主要なデータベース システムでは、ソリューション:

Oracle:

SELECT level
FROM dual
CONNECT BY level <= 10
ログイン後にコピー

SQLサーバー:

WITH q AS
(
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num < 10
)
SELECT *
FROM q
ログイン後にコピー

PostgreSQL:

SELECT num
FROM generate_series(1, 10) num
ログイン後にコピー

MySQL:

前述のシステムとは異なり、 MySQL には同様のメカニズムがありません。回避策として、次のスクリプトを使用して一時テーブルを作成し、そこに必要な数値を入力します:

CREATE TABLE filler (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;

CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= cnt DO
INSERT
INTO filler
SELECT _cnt;
SET _cnt = _cnt + 1;
END WHILE;
END
$$
ログイン後にコピー

スクリプトを使用するには、必要な数の整数を指定してプロシージャを呼び出します:

CALL prc_filler(10);
ログイン後にコピー

以上がSQL SELECT ステートメントで最初の N 個の正の整数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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