ORDER BY
뒤에 나오는 컬럼에 대해 오름차순(기본 값) 으로 정렬한다.
여러 값에 대한 정렬 (앞 컬럼 값이 같으면 뒷 컬럼 값으로 정렬) 이 필요한 경우 콤마를 이용해 여러 컬럼을 넣는다.
SELECT 문으로 검색한 열에 대해 열의 위치로도 정렬할 수 있다 ex) ORDER BY 2, 3
정렬할 열 뒤에 DESC, ASC 로 정렬 순서를 지정할 수 있다.
도전 과제
Customers 테이블에서 모든 고객의 이름(cust_name)을 가져오고, 그 결과를 내림차순으로 정렬하라.
SELECT cust_name FROM Customers ORDER BY 1 DESC;
Orders 테이블에서 고객 ID(cust_id)와 주문 번호(order_num)를 검색해, 결과를 고객 ID 로 먼저 정렬하고 같다면 최근에 주문한 순서대로 정렬하라.
SELECT cust_id, order_num FROM Orders ORDER BY cust_id, order_date DESC;
OrderItems 테이블에서 수량(quantity) 및 가격(item_price)을 검색해 가장 수량이 많고 높은 가격순으로 정렬하라.
SELECT quantity, item_price FROM OrderItems ORDER BY 1 DESC, 2 DESC;
다음 SQL 문은 무엇이 잘못되었는가? - ORDER 이 아니고 ORDER BY 임, vend_name 뒤에 콤마 빼야함
SELECT vend_name,
FROM Vendors
ORDER vend_name DESC;
주의.
ORDER BY 절은 SELECT 문 마지막에 있어야 한다.
열의 위치로 정렬할 시, 가독성이 떨어지며, 열이 변경될 때 같이 변경해주어야 하며, SELECT 에 없는 열로 정렬이 불가능하다.
tip.
SELECT 문으로 검색한 열 외의 열에 대한 값으로도 정렬할 수 있다.
정렬에서 대소문자는 대부분의 DBMS 에서 똑같은 가중치로 취급한다. 일부 DBMS 에서는 필요에 따라 변경할 수 있도록 설정을 제공한다.