SQL에서는 ORDER BY 절에 여러 개의 열 이름을 지정하는 것만으로 단일 쿼리에서 두 개 이상의 열을 동시에 정렬할 수 있습니다. 정렬은 첫 번째 열을 기준으로 먼저 수행되며, 첫 번째 열의 값이 같은 행들에 대해서는 두 번째 열을 기준으로 추가 정렬이 적용됩니다.
기본 문법
SELECT Col1, Col2, ... FROM table_name ORDER BY Col1, Col2, ...;
예제
'Student'라는 테이블을 'Name' 열과 'RollNo' 열을 기준으로 모두 정렬하고 싶다면, 다음과 같이 하나의 쿼리로 작성할 수 있습니다.
mysql> SELECT Name, RollNo FROM student ORDER BY name, rollno; +--------+--------+ | name | rollno | +--------+--------+ | Aarav | 150 | | Aryan | 165 | | Gaurav | 100 | +--------+--------+ 3 rows in set (0.00 sec)
위 쿼리는 'Name'과 'Rollno' 두 열이 정렬된 결과를 출력합니다. 만약 테이블의 모든 열을 결과로 얻고 싶다면, 아래와 같이 SELECT *를 사용하면 됩니다.
mysql> SELECT * FROM student ORDER BY name, rollno; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | | Gaurav | 100 | B.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
참고 사항
기본적으로 ORDER BY는 오름차순(ASC)으로 정렬됩니다. 내림차순으로 정렬하려면 각 열 이름 뒤에 DESC 키워드를 붙이면 되며, 예를 들어 ORDER BY name ASC, rollno DESC처럼 열마다 서로 다른 정렬 방향을 지정할 수도 있습니다.