Oracle
SELECT d.a, d.b, TRIM (REPLACE (d.d, ',', ' ')) e
FROM (SELECT c.a, c.b, SYS_CONNECT_BY_PATH (c.c, ',') d
FROM (SELECT a.a, b.b,
TO_CHAR (a.a)
|| ' * '
|| TO_CHAR (b.b)
|| ' = '
|| LPAD (TO_CHAR (a.a * b.b), 2, ' ') c,
ROW_NUMBER () OVER (PARTITION BY a.a ORDER BY b.b)
rn
FROM (SELECT LEVEL b
FROM DUAL
CONNECT BY LEVEL <= 9) b,
(SELECT LEVEL a
FROM DUAL
CONNECT BY LEVEL <= 9) a) c
START WITH c.rn = 1
CONNECT BY c.a = PRIOR c.a AND c.rn - 1 = PRIOR c.rn) d
WHERE d.b = 9;