case문으로 서로다른 db의 테이블펑션으로 데이타를 가져올 수 있을까요? 0 3 2,153

by 깨비 [2012.09.18 16:56:51]



db A, B, C 3개

table function : sf_abc 가 있습니다.


그리고 CASE문으로

select
case when aa is not null
then A.sf_abc(aaa,ccc)
else A.sf_abc(aaa)
end as nm
from
(
select * from A.a
union
select * from B.b
union
select * from C c
)

이런상황에서

case when aa is not null
then A.sf_abc(aaa,ccc)
else A.sf_abc(aaa)
end as nm

A db만 가져왔는데 B, C도 가져오고 싶은데요.

어떻게 해결하면 될까요?

잘 안되네요.

아니면

case문 말고 다른 더 좋은 방법이 있을지도....

초보좀 도와주세욤~



case
by 부쉬맨 [2012.09.18 17:48:59]
테이블펑션이라는게 먼지를 알아야될꺼같긴한데

펑션의 의미로 생각한다면

가능하겠지요.

case when a is not null  then function(a) 
         else function(b) end 

라는문법이라면요.

저 펑션에 어떠한 로직이 들어가있느냐가 문제지요

by 마농 [2012.09.18 19:15:45]
SELECT DECODE(gb
     , 'A', NVL2(aa, a.sf_abc(aaa,ccc), a.sf_abc(aaa))
     , 'B', NVL2(aa, b.sf_abc(aaa,ccc), b.sf_abc(aaa))
     , 'C', NVL2(aa, c.sf_abc(aaa,ccc), c.sf_abc(aaa))
     ) AS nm
  FROM (
        SELECT 'A' gb, a.* FROM a.a
         UNION ALL
        SELECT 'B' gb, b.* FROM b.b
         UNION ALL
        SELECT 'C' gb, c.* FROM c.c
        )
;

by 깨비 [2012.09.19 09:44:36]

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