Q. TEMP 테이블에서 행을 3개씩 묶어 하나의 번호를 부여하고, 해당 ROWNUM을 3으로 나눈 나머지가 1, 2, 0 인 경우로 나누어 컬럼의 위치를 정해주자.
첫 번째 컬럼 : TEMP 의 행을 3개씩 묶어 번호를 부여
두 번째 컬럼 : 나머지가 1이면 사번 아니면 NULL
세 번째 컬럼 : 나머지가 1이면 성명 아니면 NULL
네 번째 컬럼 : 나머지가 2이면 사번 아니면 NULL
다섯 번째 컬럼 : 나머지가 2이면 성명 아니면 NULL
여섯 번째 컬럼 : 나머지가 0이면 사번 아니면 NULL
일곱 번째 컬럼 : 나머지가 0이면 성명 아니면 NULL
A.
>
SELECT CEIL( ROWNUM /3 ) C1,
DECODE( MOD(ROWNUM, 3), 1, EMP_ID, NULL) C2,
DECODE( MOD(ROWNUM, 3), 1, EMP_NAME, NULL) C3,
DECODE( MOD(ROWNUM, 3), 2, EMP_ID, NULL) C4,
DECODE( MOD(ROWNUM, 3), 2, EMP_NAME, NULL) C5,
DECODE( MOD(ROWNUM, 3), 0, EMP_ID, NULL) C6,
DECODE( MOD(ROWNUM, 3), 0, EMP_NAME, NULL) C7
FROM TEMP
WHERE EMP_ID >0 ;
'DBMS > SQL' 카테고리의 다른 글
[ SQL ] INLINE VIEW 사용 (0) | 2020.04.03 |
---|---|
[ SQL ] GROUP 함수 내의 DECODE 사용 (0) | 2020.04.02 |
[ SQL ] ROWNUM의 사용 (0) | 2020.04.02 |
[ SQL ] 4장(rownum, rowid, decode) 데이터입력 (0) | 2020.04.02 |
[ SQL ] ALL 사용 (0) | 2020.04.02 |