select goods_nm from goods where cd='88' union all select goods_nm from goods where cd='01' ; 이렇게 하면 사과 복숭아 라는 결과가 나옵니다.
하지만 select goods_nm from goods where cd='01' 쿼리의 결과가 없을때는 사과 이렇게 나오는게 아니라 한행이 값 즉 사과 빈값 이렇게 두행이 나오게 하고 싶습니다. 쿼리로 가능한가요?;;
with goods as ( select '사과' goods_nm, '88' cd from dual union all select '복숭아' goods_nm , '01' cd from dual ) select max(goods_nm) from goods where cd='88' union all select max(goods_nm) from goods where cd='02' ;
A UNION ALL B 로 작업할 때 A 이든 B이든 결과가 있든 없든 각각의 빈행이 나와야 합니다. 답변하신 결과는 맞긴 한데 A와 b의 쿼리가 좀 긴데 이걸 두번씩 써줘야 하나요; 다른 방법은 없나요ㅠㅠ
원하시는게 이건가요?.
select goods_nm from goods where cd='88'
union all
select '빈값' from dual where not exists (select goods_nm from goods where cd='88')
union all select goods_nm from goods where cd='01'
select '빈값' from dual where not exists (select goods_nm from goods where cd='01')
주위에 물어보니까 FROM DUAL WHERE DUMMY 인가를 이용하라고 하는데
혹시 아시나요;;
이미 답은 맨 처음 답글에 달렸는데요. With 문 쓰고 한줄로 길게 써서 못알아보신듯 하네요. MAX() 하시면 됩니다. SELECT MAX(goods_nm) goods_nm FROM goods WHERE cd = '88' UNION ALL SELECT MAX(goods_nm) goods_nm FROM goods WHERE cd = '01' ;