본문 바로가기
컴퓨터관련/MS-SQL

MS-SQL에서 ORDER BY 절에 CASE WHEN 사용하기

by 빛과 어둠사이 2020. 6. 15.
728x90
반응형
SMALL

오늘은 SQL SERVER에서 ORDER BY 절에

CASE WHEN을 사용하는 방법을

정리해보고자 합니다.


기본적으로 여러 DBMS에서 

정렬을 제공합니다.

정렬을 할 때,

ORDER BY 절을 써서

정렬을 하도록 합니다.


그리고 보통 ORDER BY 절에서는

컬럼의 값들을 통해서

정렬이 되도록 합니다.




이번에는 MS-SQL에서

ORDER BY 절을 이용해 정렬을 할 때

CASE WHEN을 이용하는 방법을

정리해보고자 합니다.




우선, 제가 계속 사용하던

데이터를 조회해보도록 하겠습니다.


select * from test_member


위 테이블에는

데이터가 아래처럼 들어가져 있습니다.



위 데이터를 가지고

이제 정렬을 해보도록 하겠습니다.

member_name 값을 통해

정렬을 해보도록 하겠습니다.

ORDER BY 절을 이용해서

정렬을 하는 것입니다.


select * from test_member
order by member_name


위처럼 쿼리를 작성하였습니다.

그리고 실행을 하면

결과는 아래처럼 나오게 됩니다.



위처럼 member_name 값을 기준으로

오름차순 정렬이 된 것을

확인할 수 있습니다.





그러면 이번에는 SQL SERVER에서

ORDER BY를 사용할 때

CASE WHEN을 사용하는

예제를 확인해보도록 하겠습니다.


저는 박신혜를 맨 위로,

그 다음 송준기, 디오

그 외에는 아무나 나오도록 하고 싶습니다.

그랬을 때,

쿼리를 아래처럼 작성하였습니다.


select * from test_member
order by 
(case when member_name = '박신혜' then 1
	when member_name = '송준기' then 2
	when member_name = '디오' then 3 
	else 4 end )


위처럼 쿼리를 작성하고

실행을 하면

결과는 아래처럼 나오게 됩니다.



위처럼 나와지는 것을

확인할 수 있습니다.

우선, 제가 CASE WHEN으로 설정한 값들을 기준으로

정렬이 되고,

그 이후에는 랜덤으로 정렬이 되는 것을

확인할 수 있습니다.




ORDER BY 절에 CASE WHEN을 사용하는 것은

어려운 것은 아닙니다.

하지만, 막상 사용하려고 하면

햇갈릴 수 있는 부분이기도 합니다.

그래서 정리를 해보았습니다.






이상으로 MSSQL에서

ORDER BY로 정렬할 때,

CASE WHEN 사용하는 방법이였습니다~




1

SQL 코딩의 기술:Effective SQL, 길벗

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음







728x90
반응형
LIST