by ICARUS_JIN [SQL Query] oracle 10g [2018.12.03 21:42:53]
특정 테이블(Test1)에는 순번과 순번에 대한 수식(예 : a+b, a-b, a+c, a-c)
1 a+b
2 a-b
3 a+c
4 a-c
위와 같은 구조의 테이블이 존재하며 실질적인 a,b,c의 값을 담고 있는 테이블(test2) 이 있는데요.
a b c
1 2 3
위와 같은 2개의 테이블을 가지고
1 3
2 -1
3 4
4 -2
위와 같은 답을 구하고 싶습니다.
좋은 방법 좀 알려 주세요.
with t1 as (select 1 no, 'a+b' cal from dual union all select 2 no, 'a-b' cal from dual union all select 3 no, 'a+c' cal from dual union all select 4 no, 'a-c' cal from dual ), t2 as (select 1 a, 2 b, 3 c from dual ) select no --, cal, c1, c2, c3, a, b, c , TO_NUMBER(dbms_xmlgen.getxmltype('SELECT ' || r1||c2||r2 || ' a FROM DUAL' ).extract('//text()')) as result from (select no, cal, c1, c2, c3, a, b, c , case when c1 = 'a' then a when c1 = 'b' then b when c1 = 'c' then c end r1 , case when c3 = 'a' then a when c3 = 'b' then b when c3 = 'c' then c end r2 from (select no, cal , substr(cal, 1, 1) as c1 , substr(cal, 2, 1) as c2 , substr(cal, 3, 1) as c3 , t2.* from t1 , t2 ) );