SELECT MIN(DECODE(x, 2, z)) "2단" , MIN(DECODE(x, 3, z)) "3단" , MIN(DECODE(x, 4, z)) "4단" , MIN(DECODE(x, 5, z)) "5단" , MIN(DECODE(x, 6, z)) "6단" , MIN(DECODE(x, 7, z)) "7단" , MIN(DECODE(x, 8, z)) "8단" , MIN(DECODE(x, 9, z)) "9단" FROM (SELECT x , y , x ||' * '|| y ||' = '|| (x * y) z FROM (SELECT LEVEL+1 x FROM dual CONNECT BY LEVEL <= 8) a , (SELECT LEVEL y FROM dual CONNECT BY LEVEL <= 9) b ) GROUP BY y ORDER BY y ;
WITH a1 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'G' FROM dual ) , b2 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'B' FROM dual ) , c3 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'B' FROM dual UNION ALL SELECT 'C' FROM dual ) , d4 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'B' FROM dual UNION ALL SELECT 'C' FROM dual UNION ALL SELECT 'D' FROM dual ) , e5 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'B' FROM dual UNION ALL SELECT 'C' FROM dual UNION ALL SELECT 'D' FROM dual UNION ALL SELECT 'E' FROM dual ) , f6 AS ( SELECT 'A' id FROM dual UNION ALL SELECT 'B' FROM dual UNION ALL SELECT 'C' FROM dual UNION ALL SELECT 'D' FROM dual UNION ALL SELECT 'E' FROM dual UNION ALL SELECT 'F' FROM dual ) SELECT gb , MIN(DECODE(id, 'A', '#', '*')) a , MIN(DECODE(id, 'B', '#', '*')) b , MIN(DECODE(id, 'C', '#', '*')) c , MIN(DECODE(id, 'D', '#', '*')) d , MIN(DECODE(id, 'E', '#', '*')) e , MIN(DECODE(id, 'F', '#', '*')) f FROM (SELECT 'A1' gb, id FROM a1 UNION ALL SELECT 'B2', id FROM b2 UNION ALL SELECT 'C3', id FROM c3 UNION ALL SELECT 'D4', id FROM d4 UNION ALL SELECT 'E5', id FROM e5 UNION ALL SELECT 'F6', id FROM f6 ) GROUP BY gb ORDER BY gb ;