WITH n AS
 (SELECT LEVEL AS lv FROM dual CONNECT BY LEVEL <= 9),
m AS
 (SELECT a.lv lv_a,
         b.lv lv_b,
         a.lv || ' X ' || b.lv || ' = ' || RPAD(a.lv * b.lv, 2, ' ') text
    FROM n a, n b
   WHERE a.lv <= b.lv)
SELECT listagg(m.text, '   ') WITHIN GROUP(ORDER BY m.lv_a) AS 九九乘法表
  FROM m
 GROUP BY m.lv_b