by njnj [SQL Query] [2021.02.24 11:24:41]
가변적인 행을 컬럼으로 변경하고 싶은데 sql로는 도저히 안되는거 같아서요...
혹시 procedure나 function으로 가능할까요...?
만약 가능하다면 도움 부탁드려요...ㅠㅠ
예제는 아래와 같습니다!
before
A | 1 |
B | 2 |
C | 3 |
D | 4 |
E | 5 |
F | 6 |
G | 7 |
after
A | B | C | D | E | F | G | … |
1 | 2 | 3 | 4 | 5 | 6 | 7 | … |
1. 컬럼명이 표시가 안되어 헷갈리네요.
- before 의 경우 (코드, 값)으로 유추가 가능한데?
- after 의 경우
- a,b,c 가 1행이고, 1,2,3 이 2행인가요?
- a,b,c 가 컬럼명이고, 1,2,3 이 1행인가요?
2. 가변이라는게 어떻게 가변이 되는 건가요?
- 조회 조건에 따라 조회 되는 범위나 건수가 달라지는 건가요?
3. 구현 방안은
- 행을 열로 바꾸는 것은 피벗 쿼리를 이용해야 합니다.
- 가변 컬럼은 동적쿼리로 구현하셔야 합니다.
- 결과는 sys_refcursor 타입의 변수를 이용하셔야 합니다.