MSSQL
[MS SQL] ORDER BY CASE 정렬 조건
다빛빝
2021. 4. 13. 07:05
반응형
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 문을 여러개 중복 사용하여 정렬도 가능하다.
반응형