통계, IT, AI

조회 결과가 없을 때 쿼리로 디폴트값을 반환하기 본문

IT/SQL

조회 결과가 없을 때 쿼리로 디폴트값을 반환하기

Harold_Finch 2019. 10. 16. 22:53

DB에서 조회결과가 없을 때, 빈 리스트가 아닌 디폴트값이 나오도록 하고 싶을 때가 있다.
물론 코딩으로 구현할 수도 있지만, 경우에 따라서는 쿼리만 사용하는 것이 더 간단하기도 하다.
다음과 같이 쿼리를 작성하면 조회 결과가 있을 때는 해당 결과를, 없을 때는 디폴트값으로 '%'를 한 줄 반환한다.
단, mariadb 기준이다.

  with tb_tmp as (
select 'reason_code' as cd, '0001' as val 
 union all 
select 'reason_code' as cd, '0002' as val
)

select t1.val 
  from tb_tmp t1 
 where 1=1
   and t1.cd = 'reason_code'

 union

select nvl(t1.val, '%') 
  from (select null) t1  -- ORACLE: (select null) -> DUAL
  left outer join tb_tmp t1 
    on t1.cd = 'reason_code'

'IT > SQL' 카테고리의 다른 글

오라클에서의 정규식 활용  (0) 2016.01.11
Comments