테이블의 어떤칼럼이 시스템적으로 어떤순서가 없어서 사용자가 정의해서 정렬해야 하는경우가 가끔씩생긴다.
이럴때 정렬을 내가 원하는대로 할 수가 있는방법이 있다.
오라클의 경우에는 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')
'SQL' 카테고리의 다른 글
[MSSQL] 피벗 PIVOT을 이용 세로데이터 가로출력 (0) | 2012.09.26 |
---|---|
[MSSQL] 임시 Temp 폴더 변경하기 (0) | 2012.09.25 |
[MSSQL][구문] 테이블 형식 남기고 데이터만 삭제. (0) | 2012.09.05 |
[MSSQL] Primary Key, Unique Key, Clustered Index, NonClustered Index의 차이 (0) | 2012.09.03 |
[MSSQL] DB 목록, Table 목록, 그리고 Table 상세 정보 얻기, Create,Update 시간 알기 (0) | 2012.08.31 |