테이블의 어떤칼럼이 시스템적으로 어떤순서가 없어서 사용자가 정의해서 정렬해야 하는경우가 가끔씩생긴다.

이럴때 정렬을 내가 원하는대로 할 수가 있는방법이 있다.

오라클의 경우에는 ORER BY DECODE를 사용하여 할 수 있는데 MSSQL은 없을까 고민하다가 오라클의 DECODE와 MSSQL의 CASE 구문이 비슷한용도이므로 한번 해봤더니 잘된다.

 

-----------MSSQL 사용자정의 정렬방법-----------

SELECT CATEGORY FROM Q01_PART_NO

WHERE CATEGORY IS NOT NULL
 ORDER BY 
   CASE WHEN CATEGORY = 'PLAN_STEP' THEN 1 
   WHEN CATEGORY = 'REG_COMPLETE' THEN 2
   WHEN CATEGORY = 'NOT_REG_COMPLETE' THEN 3 
   WHEN CATEGORY = 'REG_COMPLETE_RATE' THEN 4
   WHEN CATEGORY = 'RSLT_CLSS_SUCCESS' THEN 5 
   WHEN CATEGORY = 'RSLT_CLSS_FAILURE' THEN 6 
   WHEN CATEGORY = 'NOT_VALUATION' THEN 7 END ASC

 



-----------ORACLE 사용자정의 정렬방법-----------

 ORDER BY decode(NAME,'전체','1','AA','2','PA','3','CSC','4','총무','5','콜센타','6','조사자','7','민원처리자','8','방카슈랑스','9')

Posted by 요지
,