무료 동영상 강의 https://youtu.be/XM7nPAHF8WI

ORDER BY 기본 사용법


ORDER BY 절을 사용해 출력되는 결과의 정렬 순서를 정할 수 있다.

아래와 같이 SQL을 실행해보면 상품명(ItemNm)의 순서로 데이터가 정렬되어 출력된다. 이때, ORDER BY 컬럼명 뒤에 특정한 기준을 정의하지 않으면 작은 값이 먼저 나오고 큰 값이 나중에 나오는 오름차순으로 정렬이 된다. 결과를 확인해보면 ItemNm 값이 가장 작은 'Americano(B)'가 가장 먼저 나오고, 그 다음에는 그 다음으로 큰 값인 'Americano(R)', ‘Bagel(R)’과 같은 순서로 데이터가 출력되고 있다.

-- [SQL-3-7-1] ItemNm으로 정렬
SELECT  ItemId ,ItemNm ,ItemCat
FROM    startdb.Item
ORDER BY ItemNm;

ItemId  ItemNm               ItemCat  
------  -------------------  -------  
AMB     Americano(B)         COF      
AMR     Americano(R)         COF      
BGLR    Bagel(R)             BKR      
BMFR    Blueberry Muffin(R)  BKR      
CLB     Cafe Latte(B)        COF 
... 생략 ...

오름차순과 내림차순


데이터를 정렬하는 방법(기준)은 두 가지가 있다. 하나는 작은 값이 먼저 나오고 큰 값이 나중에 나오는 오름차순이고 다른 하나는 정반대로 처리되는 내림차순이다. 내림차순은 큰 값이 먼저 나오고 작은 값이 나중에 나온다. 출력되는 데이터를 오름차순하고 싶다면 ORDER BY의 컬럼명 뒤에 ASC 키워드를 사용하고 내림차순으로 정렬하고 싶다면 DESC 키워드를 사용하면 된다. 방금 살펴본 위의 SQL과 같이 ASC나 DESC를 명시하지 않으면 기본적으로 오름차순으로 처리가 된다.

아래는 상품 세 개를 ItemCat로 내림차순 정렬해 데이터를 출력하는 SQL이다.

-- [SQL-3-7-2]
SELECT  ItemId ,ItemNm ,ItemCat
FROM    startdb.Item
WHERE   ItemId IN ('AMB','BGLR','CITR')
ORDER BY ItemCat DESC;

ItemId  ItemNm        ItemCat  
------  ------------  -------  
AMB     Americano(B)  COF      
BGLR    Bagel(R)      BKR      
CITR    Yuzu Ade(R)   BEV      

여러 컬럼의 ORDER BY


ORDER BY 절에는 콤마를 사용해 여러 컬럼을 지정할 수 있다. ORDER BY에 여러 컬럼을 지정하면 가장 왼쪽 컬럼부터 차례대로 정렬이 처리된다. 아래는 상품종류(ItemCat)가 BEV(음료), BKR(베이커리)인 데이터를 HotColdCd 컬럼으로 정렬하는 SQL이다. (아직은 하나의 컬럼만 사용해 정렬 중이다.) ORDER BY HotColdCd에 정렬 방향을 지정하지 않았기 때문에 작은 값이 먼저 나오는 오름차순으로 결과가 출력된다.

-- [SQL-3-7-3]
SELECT  HotColdCd ,ItemId ,ItemNm ,ItemCat
FROM    startdb.Item
WHERE   ItemCat IN ('BEV','BKR')
ORDER BY HotColdCd;

HotColdCd  ItemId  ItemNm               ItemCat  
---------  ------  -------------------  -------  
COLD       CITR    Yuzu Ade(R)          BEV      
COLD       LEMR    Lemonade(R)          BEV      
COLD       ZAMB    Grapefruit Ade(R)    BEV      
COLD       BMFR    Blueberry Muffin(R)  BKR      
COLD       CMFR    Chocolate Muffin(R)  BKR      
HOT        HCHB    Hot Chocolate(B)     BEV      
HOT        HCHR    Hot Chocolate(R)     BEV      
HOT        BGLR    Bagel(R)             BKR      
HOT        MACA    Macaron(R)           BKR