Post

SQL[ORDER BY]

ORDER BY

SQL에서의 ORDER BY는 SQL에서 자주 사용되는 문장 중 하나입니다.

보통 SELECT문과 함께 사용되며, 쿼리 결과를 지정된 열을 기준으로 정렬하여 반환합니다.

SQL코드 예시 [ 프로그래머스 SQL 고득점 KIT 문제]

1
2
3
4
SELECT U.USER_ID, U.PRODUCT_ID FROM ONLINE_SALE U
GROUP BY U.USER_ID, U.PRODUCT_ID
HAVING COUNT(U.USER_ID) > 1
ORDER BY U.USER_ID ASC, U.PRODUCT_ID DESC

위와같이 FROM절에서 명시한대로 ONLINE_SALE테이블에서 GROUP를 사용해 U.USER_ID, U.PRODUCT_ID를 그룹화 시켜 줍니다.

그런 다음 HAVING(GROUP의 집계함수)를 사용해 USER_ID가 1보다 큰 값들만 그룹으로 묶는대, 이제 여기서 ORDER BY가 등장하게 됩니다.

여기서는 USER_ID로 오름차순을 하고, 만약에 USER_ID가 같을 경우 PRODUCT_ID를 기준으로 내림차순을 하여 결과를 도출하는 SQL 쿼리문입니다.

이처럼 ORDER BY는 정렬할때 주로 사용되며 오름차순은 ASC, 내림차순은 DESC가 있습니다.

이외에도 여러 종류의 함수가 존재합니다.

함수 종류

LOWERO

  • 문자열을 소문자로 변환하여 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY LOWER(column_name);
    

UPPER

  • 문자열을 대문자로 변환하여 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY UPPER(column_name);
    

LENGTHO

  • 문자열의 길이를 기준으로 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY LENGTH(column_name);
    

DATE_FORMATO

  • 날짜를 특정 형식으로 변환하여 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY DATE_FORMAT(date_column, '%Y-%m-%d');
    

CONVERTO

  • 데이터 타입을 다른 형태로 변환하여 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY CONVERT(column_name, data_type);
    

CASE

  • 조건에 따라 다른 값을 반환하고 이를 기준으로 정렬합니다.

    사용법

    1
    
    SELECT column_name FROM table_name ORDER BY CASE WHEN condition THEN value ELSE other_value END;
    
This post is licensed under CC BY 4.0 by the author.