Order by 정렬

Order by 정렬

order by를 입력하는 순서는 쿼리구문의 제일 마지막에 적어줘야한다.

  • 오름차순정렬 : asc = ascending order, default
  • 내림차순정렬(최신이 위쪽) : desc = descending order 컬럼명은 alias를 적어도 적용가능하다

asc : 오름차순 정렬, 디폴트값

asc를 적어도되고 생략해도 동일한 결과값이 출력된다.

아래 예시는 employees테이블에서 hire_date로 오름차순 정렬하여 출력하는 퀴리이다.

1
2
3
select last_name, job_id, department_id, hire_date 
from employees
order by hire_date;

아래와 같이 오름차순으로 정렬됨을 알수있다




desc : 내림차순 정렬

내림차순을 원하면 꼭 적어줘야한다.

어디서 본적이 없는가?
desc는 describe의 약어이기도했다.
동명이기능이라고 생각하면된다.

hire_date를 alias로 date로 별칭을 정한뒤 order by 컬럼명을 별칭으로 적어도 정상적으로 출력된다.
아래 예시는 employees테이블에서 별칭date로 내림차순 정렬하여 출력하는 퀴리이다.

1
2
3
select last_name, job_id, department_id, hire_date as date
from employees
order by date desc;




위치값기준 정렬

위치값으로 정렬할수도있다.

아래 예시를 보자.
숫자 3을 기준으로 어떻게 정렬될까?

select되어진 컬럼들을 차례대로 1번부터 시작하면 된다.
3이니 department_id를 기준으로 아무것도 적지않았으니 asc로 정렬하게된다.

아래 예시는 employees테이블에서 department_id로 오름차순 정렬하여 출력하는 퀴리이다.

1
2
3
select last_name, job_id, department_id, hire_date
from employees
order by 3;




다중컬럼기준 정렬

다중컬럼 기준으로 정렬도 가능하다
이때는 정렬되는 순서가 달라지는데 order by 1번컬럼, 2번컬럼인 경우 1번컬럼 정렬 후!!! 2번컬럼이 정렬되어 출력된다.

아래예시를 보자.
employees테이블에서 department_id는 오름차순 정렬한 뒤 salary는 내림차순정렬로 last_name, job_id, department_id, salary를 출력하는 춰리이다.

1
2
3
select last_name, job_id, department_id, salary
from employees
order by department_id, salary desc;