|
guostong
WITH data AS (
SELECT 'A' name, 2e5 cnt FROM DUAL
UNION ALL SELECT 'BB', 4e4 FROM DUAL
UNION ALL SELECT 'CCC', 1e5 FROM DUAL
),
rdata (name, cnt, lv) as
(
select name, cnt, 1 as lv from data
union all
select name, cnt, lv + 1 as lv from rdata where lv + 1 <= cnt
)
select sum(length(name))s from(
select * from rdata
);
Elapsed: 00:00:05.58 |
|