select (case a.code when '1' then b.name_1 when '2' then b.name_2 when '3' then b.name_3 when '4' then b.name_4 when '5' then b.name_5 end) res from ( with codeTab as ( select '1' as code from dual union all select '2' as code from dual union all select '3' as code from dual union all select '4' as code from dual union all select '5' as code from dual ) select * from codeTab ) A, ( with deptTab as ( select '1' code, 'AA_1' as name_1 from dual union all select '2' code, 'AA_2' as name_2 from dual union all select '3' code, 'AA_3' as name_3 from dual union all select '4' code, 'AA_4' as name_4 from dual union all select '5' code, 'AA_5' as name_5 from dual ) select * from deptTab ) B where a.code = b.code
질문 준비를 제대로 하지않고 글올려서 죄송합니다. -0-
위 쿼리는 code값에 따라 deptTab테이블의 name_? 컬럼을 가져오게 되는 경우입니다.
실제로 해당 case문의 code 값이 50건 정도되어서요 case문이 최소 50라인이 넘어가게 되네요~
쿼리가 너무 길어져서 뭔가 좋은 방법이 혹시 있을까해서 질문드려봅니다.