[SQL] 오라클 11g - 피벗 해제
SQL오라클 11g - 피벗 해제
나는이 같은 테이블이
Date Year Month Day Turn_1 Turn_2 Turn_3
28/08/2014 2014 08 28 Foo Bar Xab
그리고 나는이 같은에서 "회전"을 싶습니다
Date Year Month Day Turn Source
28/08/2014 2014 08 28 Foo Turn_1
28/08/2014 2014 08 28 Bar Turn_2
28/08/2014 2014 08 28 Xab Turn_3
내가 말을 다른 테이블이 결과에 가입해야하기 때문에 나는 "소스"열이 필요합니다 :
Source Interval
Turn_1 08 - 18
Turn_2 11 - 20
Turn_3 18 - 24
지금 나는 테이블을 회전 사용 UNPIVOT을 가지고 있지만 (가능한 경우와) 나는 "소스"열을 표시하는 방법을 잘 모릅니다 :
select dt_date, df_year, df_month, df_turn
from my_rotatation_table
unpivot( df_turn
for x in(turn_1,
turn_2,
turn_3
))
해결했다
select dt_date, df_year, df_month, df_turn, df_source
from my_rotatation_table
unpivot( df_turn
for df_source in(turn_1 as 'Turn_1',
turn_2 as 'Turn_2',
turn_3 as 'Turn_3'
))
해결법
-
==============================
1.이 쿼리를 사용합니다 :
이 쿼리를 사용합니다 :
with t (Dat, Year, Month, Day, Turn_1, Turn_2, Turn_3) as ( select sysdate, 2014, 08, 28, 'Foo', 'Bar', 'Xab' from dual ) select dat, year, month, day, turn, source from t unpivot ( source for turn in (Turn_1, Turn_2, Turn_3) ) DAT YEAR MONTH DAY TURN SOURCE ---------------------------------------------- 08/01/2014 2014 8 28 TURN_1 Foo 08/01/2014 2014 8 28 TURN_2 Bar 08/01/2014 2014 8 28 TURN_3 Xab
from https://stackoverflow.com/questions/25077011/oracle-11g-unpivot by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MERGE 문에 구문 오류 (0) | 2020.07.18 |
---|---|
[SQL] 하나의 SQL 문을 사용하여 여러 최대 () 값을 선택 (0) | 2020.07.18 |
[SQL] 저장 프로 시저를 사용하여보기 만들기 (0) | 2020.07.18 |
[SQL] SQL 서버에서 (월요일 ~ 금요일)을 제외한 주말에 일을 계산 (0) | 2020.07.18 |
[SQL] ColdFusion에서 질의 - 사출 보호 (0) | 2020.07.18 |