Database/MySQL

MySQL) order by : sorting(오름, 내림) 정렬

pogun 2025. 2. 4. 23:19

ASC(오름차순) : 기본값, 작은 값에서 큰 값 순으로 정렬

DESC(내림차순) : 큰 값에서 작은 값 순으로 정렬

ASC (Ascending)

의미: 오름차순 (작은 값 → 큰 값)

: 기본적으로 오름차순 정렬은 ASC로 지정할 필요 없이 생략해도 기본값으로 적용되지만,

: 명시적으로 작성할 수 있다.

SELECT first_name, salary
FROM employees
ORDER BY salary ASC;

의미: salary 값을 작은 값에서 큰 값 순으로 정렬

DESC (Descending)

의미: 내림차순 (큰 값 → 작은 값)

: 내림차순으로 정렬하려면 DESC를 사용해야 함

SELECT first_name, salary
FROM employees
ORDER BY salary DESC;

의미: salary 값을 큰 값에서 작은 값 순으로 정렬

where문 활용 정렬 예제

SELECT first_name, job_id, salary
FROM employees
WHERE job_id = 'IT_PROG'
ORDER BY salary DESC;

의미: job_id가 'IT_PROG'인 직원들 중, salary를 내림차순으로 정렬

SELECT first_name, job_id, hire_date, salary
FROM employees
WHERE job_id = 'IT_PROG'
ORDER BY hire_date ASC;

의미: job_id가 'IT_PROG'인 직원들 중, hire_date를 오름차순으로 정렬

Alias 사용 정렬

select first_name, salary * 12 as annsal
from employees
order by annsal desc;

: 별칭인 annsal로 정렬을 할 수 있다.

두 개 이상의 컬럼을 기준으로 다단계 정렬 예시

SELECT first_name, job_id, salary
FROM employees
ORDER BY job_id ASC, salary DESC;

1. job_id ASC: 먼저 job_id를 오름차순 (ASC) 으로 정렬

2. salary DESC: 그런 다음, **salary**를 내림차순 (DESC) 으로 정렬

해석 : 

1. 먼저 job_id가 오름차순으로 정렬되고,

2. 같은 job_id를 가진 직원들은 그 안에서 급여(salary)가 높은 사람부터 낮은 사람 순으로 정렬됨.