ListAgg 사용시 space추가 건 0 4 4,743

by MS [SQL Query] LISTAGG [2012.04.27 11:59:15]


다른 도움을 가지고 일부 수정을 해 보았는데 확인결과 모든 결과값이 space가 각 값마다 들어가 있네요.
어떤 이유인지는 모르겠습니다.

프로그램
select ListAgg('"'|| pid || '"', ',') WITHIN GROUP(ORDER BY pid) from
(SELECT distinct(pid)
  FROM cmodelpkgfeature
 WHERE relation = 'S' and productcode = 'CQ2'
 order by pid)
;

결과값
" C 0 1 1 ", " C 0 1 2 ", " C 0 1 3 ", " C 0 2 1 ", " C 0 2 2 "

결과값에 space가 있는것을 확인할수 있습니다.
by 손님 [2012.04.27 13:26:06]
ListAgg 에 그런 기능은 없습니다.
1. 원래 데이터에 공백이 있다.
2. 특정 툴(유틸) 사용에 따른 부작용이 있다.
3. 원래 데이터가 2Byte 짜리 전각문자인데 공백이 있는 것으로 착각했다.

by 손님 [2012.04.27 15:06:15]

pid에다가 to_single_byte(pid)를 붙여보세요..


by 손님 [2012.04.28 09:07:24]
두분의 답변 감사합니다.

by 손님 [2012.04.28 19:13:01]
하도 신기해서 여러가지로 테스트 하다가 원인을 알았습니다.

물론 이유는 모르겠지만 혹시나 해서 data type을 바꾸어 보니 정상적으로 나오는것을 확인했습니다.

기존 Data Type NVARCHAR2 => 중간에 space가 나온다.
변경 Data Type VARCHAR2 => 정상.

혹시 다른 분들도 같은 경우가 생길지 몰라 결과을 올립니다.

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