2010-02-26 6 views
3

나는 항상 개의 열로 하나의 행을 반환하는 쿼리를 가지고 있습니다. 이걸 2 열과 많은 행으로 바꾸고 싶습니다.하나의 행을 여러 행으로 변환하십시오.

원래 결과 :

ColName, Value 
-------------- 
Col1, val1 
Col2, val2 
Col3, val3 
Col4, val4 

이 가능 : 내가 원하는 무엇

Col1, Col2, Col3, Col4 
---------------------- 
val1, val2, val3, val4 

?

EDIT (설명)

나는이 일을 자동 방법을 찾고 있어요. IE는 내가 뭔가를 줄 수있는 모든 쿼리에서 결과를 전달할 수 있습니다.

답변

2

Oracle 11g를 사용하고 있습니까? 피벗 앤 피벗을 시도 했습니까?

자세한 정보 here.

+0

나는 unpivot을 가지고있다. 이것은 여전히 ​​내가 원하는 것을 정확히하지는 않지만, 두 번째 질문으로 나눌 것입니다. –

+0

후자에 대한 참고 사항 : 모든 열이 동일한 반환 유형 인 경우에만 작동합니다. to_char()를 통해 모두 전송하여이 문제를 해결할 수 있습니다. –

+0

예 : http://stackoverflow.com/questions/2345010/have-unpivot-automatically-grab-column-list-oracle-11g – Vadzim

3

Do

select 'Col1' ColName, Col1 Value from srctable union all 
select 'Col2', Col2 from srctable union all 
select 'Col3', Col3 from srctable union all 
select 'Col4', Col4 from srctable 
+0

흠이 이전 게시물을 참조하십시오. 그 트릭을 할 것입니다. 나는 그것을하기 위해 자동적 인 방법이 있기를 바래 ... –

0

피벗 테이블 지원 빌드가있는 Oracle 버전이없는 것 같습니다. 불행히도 각 행을 빌드해야하므로 매우 깨끗한 코드는 아닙니다.

는 예를

transpose-select-results-with-oracle