DBMS/MySQL 정리

[MySQL] ORDER BY문으로 데이터 정렬하기

웹코린이 2023. 6. 15. 09:30
728x90

ORDER BY란 ?

 - 데이터를 설정한 조건에 맞도록 정렬을 해주는 명령어

 

ORDER BY 문의 기본 형식

SELECT [열] FROM [테이블] WHERE [열] = [조건값] ORDER BY [열] [ASC, DESC]

[열] : 정렬한 열 이름을 입력한다.

[ASC, DESC] : 정렬 기준에 따라 오름차순, 내림차순을 정의한다. (ASC : 작은 값부터 오름차순, DESC : 큰 값부터 내림차순)

 

예제]

/* 영어 우선순위 정렬 */
USE DoItSQL;
WITH CTE (col_1) AS (
SELECT N 'ABC' UNION ALL
SELECT N '123' UNION ALL
SELECT N '가나다'
)
SELECT * FROM CTE
ORDER BY col_1 ASC 

/* 실행 결과

	col-1
1	123
2	ABC
3	가나다

*/

/* 한글 우선순위 정렬 */
USE master;
WITH CTE (col_1) AS (
SELECT N 'ABC' UNION ALL
SELECT N '123' UNION ALL
SELECT N '가나다'
)
SELECT * FROM CTE
ORDER BY col_1 ASC

/*

	col_1
1	123
2	가나다
3	ABC

*/

 

열 기준 정렬

 

데이터를 1개 열 기준으로 정렬할 때는 정렬할 열 이름을 ORDER BY 문 뒤에 입력한다.

 

예시]

SELECT * FROM nasdaq_company ORDER BY symbol -- ORDER BY 뒤에 열 이름

SELECT * FROM symbol ORDER BY nasdaq_company -- ORDER BY 뒤에 열 이름

 

열을 2개 이상 기준으로 정렬할 때는 정렬 순서에 따라 쉼표를 사용해 열 이름을 나열한다.

 

예시]

SELECT * FROM nasdaq_company
WHERE sector IS NOT NULL AND sector <> ''
ORDER BY sector, industry -- ORDER BY 뒤 쉼표로 구분

SELECT * FROM nasdaq_company
WHERE sector IS NOT NULL AND sector <> ''
ORDER BY industry, sector -- ORDER BY 뒤 쉼표로 구분

 

ASC로 오름차순 정렬

 오름차순 정렬은 ASC를 정렬하려는 열 이름 뒤에 붙이면 된다. 정렬 기본값은 오름차순으로 ASC이므로 생략할 수 있다. 

 

예시]

SELECT * FROM nasdaq_company
ORDER BY symbol ASC

 

DESC로 내림차순 정리하기

정렬 기본값이 오름차순이므로 내림차순으로 정리하기 위해서는 DESC 뒤에 열 이름을 작성한다.

 

예시]

SELECT * FROM nasdaq_company
ORDER BY symbol DESC
728x90