clob 타입이 포함된 쿼리의 group by 질문입니다. 0 4 7,813

by 별명 [2013.09.17 13:37:43]


seqtypecol1col2col3col4
1A(CLOB) aaa
1B(CLOB) bbb
1C(CLOB) ccc
1D(CLOB) ddd


seqtypecol1col2col3col4
1A(CLOB) aaa(CLOB) bbb(CLOB) ccc(CLOB) ddd

   위 테이블을 아래처럼 조회하려고 합니다. 

   문제는 col1~ col4 가 clob 타입이라 group by 가 안되는문제가 있는데

   어떻게 해결해야 할까요 ㅠㅠ

   group by 햇을때 type 은 아무나 나와도 됩니다 ㅠㅠ



with t as(
select '1' seq, 'A' type, to_clob('aaa') col1, to_clob('') col2, to_clob('') col3 ,to_clob('') col4 from dual union all
select '1' , 'B' , to_clob(''), to_clob('bbb'),to_clob(''),to_clob('')  from dual union all
select '1' , 'C' , to_clob(''), to_clob(''), to_clob('ccc'),to_clob('')  from dual union all
select '1' , 'D' , to_clob(''), to_clob(''), to_clob(''), to_clob('ddd')  from dual 
)select * from t
by 윤 [2013.09.17 13:48:00]
with t as(
select '1' seq, 'A' type, to_clob('aaa') col1, to_clob('') col2, to_clob('') col3 ,to_clob('') col4 from dual union all
select '1' , 'B' , to_clob(''), to_clob('bbb'),to_clob(''),to_clob('') from dual union all
select '1' , 'C' , to_clob(''), to_clob(''), to_clob('ccc'),to_clob('') from dual union all
SELECT '1' , 'D' , to_clob(''), to_clob(''), to_clob(''), to_clob('ddd') FROM dual 
)
SELECT seq,max(a),max(b),max(c),max(d) FROM (
SELECT seq,TYPE,to_char(col1)A,to_char(col2)b,to_char(col3)c,to_char(col4)d FROM t)
group by seq;

--필요한 부분일까 싶어서...올립니다.


clob 타입을 to_char로 변경해서 맥스지정하는부분임니당..

by 별명 [2013.09.23 13:54:44]
clob 타입의 크기가

4000이 넘어서 to_char 가 안됩니다. ㅠㅠ

by 마농 [2013.09.23 14:39:44]
SELECT a.seq
     , a.col1
     , b.col2
     , c.col3
     , d.col4
  FROM (SELECT seq, col1 FROM t WHERE type = 'A') a
     , (SELECT seq, col2 FROM t WHERE type = 'B') b
     , (SELECT seq, col3 FROM t WHERE type = 'C') c
     , (SELECT seq, col4 FROM t WHERE type = 'D') d
 WHERE a.seq = b.seq
   AND a.seq = c.seq
   AND a.seq = d.seq
;

by 별명 [2013.09.24 11:47:40]
답변 감사합니다

seq 가 더 있을때는

아우터 조인으로 해결하였습니다 .ㅎㅎ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입