Thanks SM. The 1st query had a typo.
SELECT DECODE(A.CD,NULL,B.CD,A.CD) CD, DECODE(A.CD,NULL,B.NAME,A.NAME) NAME
FROM A FULL OUTER JOIN B ON A.CD = B.CD;
would have worked. The 2nd one is definitely wrong. Any way, your answer addresses what I was looking for. Thanks for your help.