0
오라클 11의 PIVOT와
문제점 : 다음을 실행할 때, 모든 필드 데이터에 정규화 결과를 얻을 F2-F4 데이터가 존재; 항상 데이터가 있으므로 F1 키입니다 :손실이 가입
select t1.F1, t2.F2, t2.F3, t2.F4
from schema.t1,
schema.t2
where
t1.F1 = t2.F1 (+)
가 지금은 모든 필드 F2 가입 오라클의 PIVOT 기능을 사용하기 위해 이동 - F4 F2 등 많은 사이의 모든 F2 필드에 대한 필드 하나가되도록 5 행, 다음과 같이 모두가 연결된 같이
select * from (
select F1,
TRIM("1_F2") || TRIM("2_F2") || TRIM("3_F2") || TRIM("4_F2") || TRIM("5_F2") as "F2",
TRIM("1_F3") || TRIM("2_F3") || TRIM("3_F3") || TRIM("4_F3") || TRIM("5_F3") as "F3",
TRIM("1_F4") || TRIM("2_F4") || TRIM("3_F4") || TRIM("4_F4") || TRIM("5_F4") as "F4"
from (
select ROWNUM as RN, T.* from (
select t1.F1, t2.F2, t2.F3, t2.F4
from schema.t1,
schema.t2
where
t1.F1 = t2.F1 (+)
) T
)
PIVOT (
MAX(F2) as "F2",
MAX(F3) as "F3",
MAX(F4) as "F4"
FOR RN in (1,2,3,4,5)
)
)
이 데이터를 반환되면, F2 행 중에서 찾을 수있는 모든 데이터는 예를 들어, 다시 모든 레코드에 대해 단일 F2 로우로 결합되어 제공되도록. 실제로 작동하는 레코드의 경우 정규화 된 결과에서 찾은 모든 데이터를 얻습니다. 그러나 작동하지 않으면 정규화 된 결과에서 찾은 데이터가 반환되지 않습니다.
아이디어가 있으십니까? 내가 뭘 놓치고 있니?
미리 감사드립니다.
이 중 하나를 평가하지 않습니다 - 당신의 괄호가 일치하지 않습니다. – dipdapdop
@dipdapdop 네가 옳았다. 그리고 중요한 부분을 불필요하게 하위 선택 항목에 포함 시켰으므로 그 부분도 생략했습니다. –
외부 선택 절에 여전히 구문 오류가 있습니다. WITH 블록에 몇 가지 테스트 데이터를 제공하는 것이 좋습니다. 완전히 작동하는 예제를 만드는 것이 좋습니다. – dipdapdop