Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

SQL 단일 쿼리로 여러 열을 정렬하는 방법

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처럼 열마다 서로 다른 정렬 방향을 지정할 수도 있습니다.