2개의 테이블에 값이 있는지 조회하는건대요. 0 2 6,146

by 유환 [Oracle 기초] select [2012.03.07 18:09:47]


a라는 값이

a테이블이나 b테이블에 존재하는지.. 체크 하려고 합니다.

제가 생각 나는건..

select sum(cnt) from
(
select count(*) as cnt from a
unin all
select count(*) from b
)
이렇게 해서 0보다 크면 존재 한다 체크 하려고 합니다.
이것 보다 더 좋은게 a테이블에 있으면 굿이 b테이블까지 조회할 필요가 없거든요.
이럴때 어떻게 sql를 하면 좋은가요?
by 손님 [2012.03.07 18:30:09]
select
    (case when exists(select 1 from a where key='a') then 'A'
            else exists(select 1 from b where key='a') then 'B' end)  as found
from dual;

found값이  'A'라면 A테이블에, 'B'라면 'B'테이블에 있는거고 null 이면 없습니다.

by 손님 [2012.03.07 18:31:52]
select 
    (case when exists(select 1 from a where key='a') then 'A'
            else exists(select 1 from b where key='a') then 'B' end)  as found
from dual;


found값이  'A'라면 A테이블에, 'B'라면 'B'테이블에 있는거고 null 이면 없습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입