무료 동영상 강의 https://youtu.be/XM7nPAHF8WI
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에 여러 컬럼을 지정하면 가장 왼쪽 컬럼부터 차례대로 정렬이 처리된다. 아래는 상품종류(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