코드공부방

[MYSQL/MariaDB] ORDER BY 임의 순서 정렬 / 순서 지정 / 임의 지정 본문

웹프로그래머/SQL

[MYSQL/MariaDB] ORDER BY 임의 순서 정렬 / 순서 지정 / 임의 지정

:- ) 2023. 5. 25. 16:46
반응형

SELECT 한 데이터들의 정렬을 하기 위해서는 ORDER BY절을 사용한다.

SELECT PURCHASE_TYPE
FROM TBL_CAR_LIST
ORDER BY PURCHASE_TYPE

ORDER BY절 기본값은 오름차순이다.

위 예시 데이터 결과를 보면 '가나다..'순으로 오름차순 정렬된 것을 확인 할 수 있다. 만약 역순으로 하고 싶다면 'DESC'를 붙여주면 된다.

SELECT PURCHASE_TYPE
FROM TBL_CAR_LIST
ORDER BY PURCHASE_TYPE DESC

ORDER BY 뒤에 DESC를 붙이면 내림차순으로 정렬된다.

근데 어떠한 목적으로 내가 원하는대로 순서지정이 필요한 경우가 꼭 있다. (인기있는 키워드를 윗쪽으로 정렬해준다던지.. ) 그런 경우에는 CASE문을 활용할 수 있다. 만약 "선물 > 위탁 > 위탁매입"는 우선 정렬하고 나머지는 오름차순으로 정렬을 원한다면,

SELECT PURCHASE_TYPE
FROM TBL_CAR_LIST
ORDER BY (
        CASE PURCHASE_TYPE
            WHEN '선물' THEN 1
            WHEN '위탁' THEN 2
            WHEN '위탁매입' THEN 3
        ELSE 4
        END
    ),
    PURCHASE_TYPE

위와 같이 CASE문으로 임의지정 해준 뒤 다시 PURCHASE_TYPE으로 정렬을 해줄 수 있다.

원하는대로 정렬되었다.

 

반응형
Comments