首頁 > 資料庫 > mysql教程 > 如何使用 SQL SELECT 語句產生前 N 個正整數?

如何使用 SQL SELECT 語句產生前 N 個正整數?

DDD
發布: 2024-12-24 14:35:15
原創
307 人瀏覽過

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

使用SQL SELECT 產生前N 個正整數

問題:

問題:

問題:

。個僅使用標準SQL SELECT 語句來處理N 個正整數提出了挑戰。有沒有不依賴計數表的解決方法?

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
登入後複製

Oracle:

SELECT num
FROM generate_series(1, 10) num
登入後複製

伺服務器:

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
$$
登入後複製
PostgreSQL:

CALL prc_filler(10);
登入後複製
MySQL:與上述系統不同, MySQL缺乏類似的機制。作為解決方法,您可以使用以下腳本建立臨時表並用所需的數字填充它:要使用該腳本,請使用所需的整數數量呼叫過程:

以上是如何使用 SQL SELECT 語句產生前 N 個正整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板