IT/DB

ORACLE에서 MSSQL로 PIVOT-FOR-IN 쿼리 변경 하는 방법

미녀개발자 2019. 5. 8. 14:58
반응형

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
반응형