WITH code_t AS ( SELECT '01' sFlagCd FROM dual UNION ALL SELECT '02' FROM dual UNION ALL SELECT '03' FROM dual UNION ALL SELECT '04' FROM dual UNION ALL SELECT '05' FROM dual ) , data_t AS ( SELECT '01' sFlagCd, 100 nAmt, 10 nAnnt FROM dual UNION ALL SELECT '03', 200, 20 FROM dual UNION ALL SELECT '04', 300, 30 FROM dual ) SELECT a.sFlagCd , NVL(nAmt , 0) nAmt , NVL(nAnnt, 0) nAnnt FROM code_t a LEFT OUTER JOIN data_t b ON a.sFlagCd = b.sFlagCd ORDER BY a.sFlagCd ;