使用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 $$
CALL prc_filler(10);
以上是如何使用 SQL SELECT 語句產生前 N 個正整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!