parameter는 항상 넘어오지만 일치하는 값이 없으면 기본의 라인을..있으면 해당 라인의 값을 가져오고 싶습니다. 0 2 467

by woni_rang [SQL Query] [2020.11.23 15:00:40]


select 'aClass'as c, 'park' as t, '' as d from dual
union all
select 'aClass' as c, 'lee' as t, 'mon' as d from dual
union all
select 'aClass' as c, 'kim' as t, 'tue' as d from dual;

aClass에서 기본으로 park값만 조회하다 paramter로 mon이 오면 lee값만 조회되게하고

tue값이 오면 kim만 조회되게 하려면 어떻게 하나요..

덧붙여 parameter로 값은 항상 넘어오지만 존재하지 않는 값인 경우 기본인 park만 조회가 되어야합니다.

떠오르지를 않네요..도움 부탁드립니다...(__)

 

by 마농 [2020.11.23 15:22:20]
WITH t AS
(
SELECT 'aClass' c, 'park' t, '' d FROM dual
UNION ALL SELECT 'aClass', 'lee', 'mon' FROM dual
UNION ALL SELECT 'aClass', 'kim', 'tue' FROM dual
)
SELECT a.c
     , NVL(b.t, a.t) t
     , :v_d d
  FROM t a
  LEFT OUTER JOIN t b
    ON a.c = b.c
   AND b.d = :v_d    -- (mon, tue, wed, thu, fri, sat, sun)
 WHERE a.c = :v_c    -- (aClass)
   AND a.d IS NULL
;

 


by woni_rang [2020.11.23 15:53:44]

마농님 항상 감사드립니다.(__)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입