打印9*9乘法表
正三角
-
with
-
t as
-
(
-
select level as n from dual connect by level<=9
-
)
-
select sys_connect_by_path(
-
lpad(b.n,2,' ')
-
||'*'
-
||lpad(a.n,2,' ')
-
||'='
-
||lpad(a.n*b.n,2,' '),'|') as result
-
from t a,t b
-
where level=a.n
-
start with b.n=1
-
connect by a.n=prior a.n
-
and b.n=prior b.n+1;
倒三角
-
set pagesize 200;
-
set linesize 400;
-
col result format a100;
-
with t as
-
(
-
select level as n from dual connect by level<=9
-
)
-
select
-
lpad(
-
substr(
-
sys_connect_by_path(lpad(a.n,2,' ')
-
||'*'
-
||lpad(b.n,2,' ')
-
||'='
-
||lpad(a.n*b.n,2,' '),
-
'|'
-
),
-
instr(
-
sys_connect_by_path(lpad(a.n,2,' ')
-
||'*'
-
||lpad(b.n,2,' ')
-
||'='
-
||lpad(a.n*b.n,2,' '),
-
'|'
-
),
-
'|',-1,a.n
-
)
-
),81,' '
-
) as result
-
from t a,t b
-
where level=9
-
start with b.n=9
-
connect by a.n=prior a.n and b.n=prior b.n-1
-
order by a.n desc,b.n desc;
-
WITH num AS
-
( SELECT rownum r FROM dual CONNECT BY level<=9
-
)
-
SELECT listagg(y.r
-
||'*'
-
||x.r
-
||'='
-
||
-
CASE
-
WHEN x.r*y.r<10
-
THEN ' '
-
ELSE ''
-
END
-
|| (x.r*y.r),' ') within GROUP (ORDER BY y.r)rr
-
FROM num x,
-
num y
-
WHERE x.r>=y.r
-
GROUP BY x.r;
-
-
WITH num AS
-
( SELECT rownum r FROM dual CONNECT BY level<=9
-
)
-
SELECT lpad(' ',(9-x.r)*7,' ')
-
|| listagg(y.r
-
||'*'
-
||x.r
-
||'='
-
||
-
CASE
-
WHEN x.r*y.r<10
-
THEN ' '
-
ELSE ''
-
END
-
|| (x.r*y.r),' ') within GROUP(ORDER BY y.r DESC) rr
-
FROM num x,
-
num y
-
WHERE x.r>=y.r
-
GROUP BY x.r
-
ORDER BY x.r DESC;
-
-
WITH num AS
-
( SELECT rownum r FROM dual CONNECT BY level<=9
-
)
-
SELECT
-
(SELECT lpad(' ',(9-x.r)*7,' ')
-
|| REPLACE(MAX(sys_connect_by_path(x.r
-
||'*'
-
||(x.r+1-rownum)
-
||'='
-
|| (
-
CASE
-
WHEN (x.r+1-rownum)*x.r<10
-
THEN 'z'
-
ELSE ''
-
END)
-
|| ((x.r+1-rownum)*x.r),' ')),'z',' ')r
-
FROM dual
-
CONNECT BY level<=x.r
-
) xx
-
FROM num x
-
ORDER BY x.r DESC;
-
-
WITH num AS
-
( SELECT rownum r FROM dual CONNECT BY level<=9
-
)
-
SELECT
-
(SELECT REPLACE(MAX(sys_connect_by_path(rownum
-
||'*'
-
||x.r
-
||'='
-
||(
-
CASE
-
WHEN rownum*x.r<10
-
THEN 'z'
-
ELSE ''
-
END)
-
|| (rownum*x.r),' ')),'z',' ') r
-
FROM dual
-
CONNECT BY level<=x.r
-
) xx
-
FROM num x;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1150050/
,如需转载,请注明出处,否则将追究法律责任。