행을 열로 확장시 행의 갯수가 고정이 아닌 경우입니다. 0 4 2,111

by 황준 [2007.05.17 13:15:41]


오라클에서 쿼리시 조회시 행으로 조회된 데이터를 열로 바꾸는 방법은 없나요?

행이 고정된 것은 decode로 어케 되는데

궁금합니다.

도와주세요.......

col1 col2 col3

___  ____ ___

001  2004  a

002  2005  b

003  2006  c

004  2007  d

.

.

.

.

 

이렇게 조회된 데이터를

___ ____ _ ___ ____ _ ___ ____ _  ___ ____ _

001 2004 a 002 2005 b 003 2006 c 004 2007 d ...........

이런식으로 바꿀수 있는 방법입니다.

 

조언 부탁드립니다.

 

 

by finecomp [2007.05.17 00:00:00]
동적이라...간단한 방법은 다음과 같겠네요.
1. 모든 조건을 수용하는 Max Col만큼 충분하게 Loop를 돌면서 Dynamic Query를 만든다.
2. 결과셋에 COUNT(*) OVER()등을 이용해서 실제 보여줄 컬럼에 필요한 수를 같이 구해온다.
3. 제시할 때 구해온 count등의 수를 이용하여 실제 컬럼만 남기고 grid등의 열을 삭제한다.

동적인 경우 정석적인 방법은 프로시져, app 등으로 정확하게 결과셋을 변환하는 방법 뿐 입니다...;

건승하시길...수고하세요~~

by finecomp [2007.05.17 00:00:00]
질문의 경우라면 raw-data의 row_count * 3정도가 유효한 col갯수겠지요?
이 이후의 컬럼은 안보여주면 됩니다...^^;

by 황준 [2007.05.18 00:00:00]
답변 감사합니다. sql초보라.. 예를 들어주시면 안되겠습니까?! ㅠㅠ; 머리가 빙글빙글..

by finecomp [2007.05.18 00:00:00]
전부 다 설명하려면 꽤 양이 많아서...^^;
직접 찾아보시고 해 보시는게 좋을 것 같습니다.
각각의 Key-Word대로 상단 입력란에서 검색하여 보시길...;
1. Dynamic Query
2. COUNT(*) OVER() - 분석함수
3. 이 방법은 프로그래밍하는 app에서 찾아야 하겠죠?
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입