안녕하세요.
(ORACLE) 테이블 3개를 합쳐서 원하는 조건일 때 우선순위를 정하여 해당 테이블의 데이터를 가져오려고 하고 있습니다.
예를 들어 이벤트당첨 테이블 A, B, C (컬럼 : 당첨자, 당첨시간, 당첨금액)가 있을 때 특정기간(22년 1월 25일 12시)에 해당하는 데이터가 3군데에 다 있더라도 특정 테이블을 우선순위로 정해서(우선순위 A>B>C) A 테이블의 데이터를 가지고 오는 방법이 있을까요? (테이블에 데이터가 B 테이블에만 존재할 경우 B 데이터만 가져오려고 하고 있습니다.)
3개의 테이블을 조인해서는 데이터를 가져오기 힘들어 계층구조도 알아보고 VIEW 를 만들어보려고도 하였으나 잘 진행이 되지 않아
조언을 얻고자 질문드립니다.
SELECT * FROM (SELECT gb, 당첨자, 당첨시간, 당첨금액 , RANK() OVER(ORDER BY gb) rk FROM (SELECT 1 gb, 당첨자, 당첨시간, 당첨금액 FROM a WHERE 특정기간 UNION ALL SELECT 2 gb, 당첨자, 당첨시간, 당첨금액 FROM b WHERE 특정기간 UNION ALL SELECT 3 gb, 당첨자, 당첨시간, 당첨금액 FROM c WHERE 특정기간 ) ) WHERE rk = 1 ; SELECT 당첨자, 당첨시간, 당첨금액 FROM a WHERE 특정기간 UNION ALL SELECT 당첨자, 당첨시간, 당첨금액 FROM b WHERE 특정기간 AND NOT EXISTS (SELECT 1 FROM a WHERE 특정기간) UNION ALL SELECT 당첨자, 당첨시간, 당첨금액 FROM c WHERE 특정기간 AND NOT EXISTS (SELECT 1 FROM a WHERE 특정기간) AND NOT EXISTS (SELECT 1 FROM b WHERE 특정기간) ;