반응형

 

MS SQL ORDER BY 조건

 

프로그래밍시 정렬을 해도되지만

  

쿼리단계에서 ORDER BY CASE 문을 이용한 정렬 방법이다

 

다음과 같은 테이블이 있을때

 

USER_ST 3, 2, 1, 4 로 정렬하려면

 

SELECT * FROM USERS
ORDER BY 
  CASE 
    WHEN USER_ST = 3 THEN 0 
	WHEN USER_ST = 2 THEN 1
	WHEN USER_ST = 1 THEN 3
	WHEN USER_ST = 4 THEN 4
	ELSE 99
  END ASC

위와 같이 CASE 를 사용하여 임의로 순서를 지정해주면 된다.

 

 

 

SELECT * FROM USERS
ORDER BY 
  CASE 
    WHEN USER_ST = 3 THEN 0 
	WHEN USER_ST = 2 THEN 1
	WHEN USER_ST = 1 THEN 3
	WHEN USER_ST = 4 THEN 4
	ELSE 99
  END ASC,
  CASE 
    WHEN USER_ID = 'PARK' THEN 0
	ELSE 1
  END ASC

위와 같이 CASE 문을 여러개 중복 사용하여 정렬도 가능하다.

반응형

+ Recent posts