我正在做一個專案,在那里我遇到了一個問題,我需要一個 PLSQL 程式來執行以下模式,比如增加數字、星號、哈希等。
1
12
123
1234
12345
uj5u.com熱心網友回復:
您可以使用這樣的分層查詢
WITH t AS
(
SELECT LISTAGG(level) WITHIN GROUP (ORDER BY level) AS nr, MAX(level) AS lvl
FROM dual
CONNECT BY level <= 5
)
SELECT SUBSTR(nr,1,level) AS nr
FROM t
CONNECT BY level <= lvl
如果需要在 PL/SQL 代碼塊中撰寫,則使用 FOR LOOP 和上面的查詢
SQL> SET SERVEROUTPUT ON
SQL> BEGIN
FOR c IN
(
<above query>
)
LOOP
DBMS_OUTPUT.PUT_LINE(c.nr);
END LOOP;
END;
/
Demo
uj5u.com熱心網友回復:
只需使用兩個回圈:
BEGIN
FOR i IN 1 .. 5 LOOP
FOR j IN 1 .. i LOOP
DBMS_OUTPUT.PUT(j);
END LOOP;
DBMS_OUTPUT.NEW_LINE();
END LOOP;
END;
/
哪些輸出:
1 12 123 1234 12345
db<>在這里小提琴
uj5u.com熱心網友回復:
對于 PLSQL,您可以像這樣生成相同的模式:
DECLARE
I_NUM NUMBER:=1234;
PATTERN NUMBER;
BEGIN
FOR I IN 1..LENGTH(I_NUM) LOOP
PATTERN:=SUBSTR(I_NUM,1,I);
DBMS_OUTPUT.PUT_LINE(PATTERN);
END LOOP;
END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/321322.html
