Oracle 無內建聚合函數支援連乘,但可利用對數性質轉換:a * b = 10^(log10(a) + log10(b))。
CREATE TABLE t (id INT, qty INT);
INSERT INTO t SELECT 1, 2 FROM dual UNION ALL
SELECT 2, 4 FROM dual UNION ALL
SELECT 3, 6 FROM dual UNION ALL
SELECT 4, 5 FROM dual;
SELECT POWER(10, SUM(LOG(10, qty))) FROM t;
240 -- 2*4*6*5 = 240
CASE 分支處理或改用 PL/SQL 迴圈。LN/EXP 自然對數基底。此技巧常用於財務複利、機率連乘、庫存滾動計算等場景,避免寫迴圈大幅簡化 SQL。