2010-02-26 3 views
2

이 내가 임의의 쿼리 결과를 피벗 해제 할 수 있도록하려면 Transpose one row into many rows Oracle유무가 자동으로 열 목록 (오라클 11g)

에 대한 후속 질문은 잡아 피벗 해제. 모두를 사로 잡고 내가 대신 value for value_type in (col1, col2, col3, col4, col5)의 넣어 뭔가 거기에

select value_type, value from (
(
    -- query to be unpivoted 
    -- EG: select col1, col2, col3, col4, col5 from table 
) 
unpivot 
(
    -- Line I would like to change 
    value for value_type in (col1, col2, col3, col4, col5) 
) 
); 

이 5 열을 반환하는 모든 쿼리 작동 col1, col2라는 등 :

내가 할 것, 수동으로 테이블을 피벗 해제하려면 첫 번째 부분에서 선택된 쿼리 /보기/테이블의 열 이름?

답변

2

SQL 문을 동적으로 문자열로 작성한 다음 execute immediate을 사용하여 동적으로 작성하고 커서를 리턴함으로써 PL/SQL에서이를 수행하는 저장 프로 시저를 작성할 수 있습니다.

+1

코드에 대한 자세한 답변은 다음과 같습니다. http://stackoverflow.com/questions/15100101/unpivot-on-an-indeterminate-number-of-columns – Vadzim