반응형
ORACLE에서 MSSQL로 PIVOT~FOR~IN 쿼리 변경시 참고사항
아래 두 쿼리는 같은 결과를 뽑아내는 쿼리이다.
기존 오라클->MSSQL로 변경할때 컬럼 ALIAS를 오라클에서와 같이 IN절에 쓸 수 없어 SELECT문으로 뽑아서 사용해야하며, IN절에 들어가는 값은 [] 대괄호로 묶어주어야 한다. (SELECT 절에서도 마찬가지.)
ORACLE
SELECT * FROM (
SELECT TEST_SEQ, TEST_NO, TEST_CONT FROM TEST_TABLE
) PIVOT (
SUM(TEST_CONT)
FOR TEST_SEQ IN(1 TEST_01,2 TEST_02,3 TEST_03,4 TEST_04,5 TEST_05,6 TEST_06
,7 TEST_07,8 TEST_08,9 TEST_09,10 TEST_10,11 TEST_11,12 TEST_12)
)
MSSQL
SELECT
TEST_NO
,[1] TEST_01
,[2] TEST_02
,[3] TEST_03
,[4] TEST_04
,[5] TEST_05
,[6] TEST_06
,[7] TEST_07
,[8] TEST_08
,[9] TEST_09
,[10] TEST_10
,[11] TEST_11
,[12] TEST_12
FROM (
SELECT * FROM (
SELECT TEST_SEQ, TEST_NO, TEST_CONT
FROM TEST_TABLE
) AS T1
PIVOT (
SUM(TEST_CONT)
FOR TEST_SEQ IN([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
) AS T2
) A
반응형
'IT > DB' 카테고리의 다른 글
mssql CONVERT yyyymmddhh24miss 포맷 (0) | 2019.05.09 |
---|---|
ORACLE에서 MSSQL 마이그레이션 시 참고사항 (0) | 2019.05.09 |
[ORACLE] ORA-00932: 일관성 없는 데이터 유형: NUMBER이(가) 필요하지만 CHAR임 해결 (0) | 2019.05.03 |
[mssql] TOP, OFFSET 또는 FOR XML을 함께 지정하지 않으면 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 ORDER BY 절을 사용할 수 없습니다. (0) | 2019.04.01 |
mssql 나누기 소수점이 안나올때 (정수로만 보여질때) (2) | 2019.04.01 |