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

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

DDD
DDDオリジナル
2024-12-24 14:35:15311ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。