Database/SQL

SQL (3) - ORDER BY

슬픈 야옹이 2023. 2. 4. 21:49

ORDER BY

지정한 열을 기준으로 데이터를 정렬한다.

 

사용법은 다음과 같다.

SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...
FROM 테이블
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC] ... ;

 

order by 절에 asc를 적으면 오름차순, desc를 적으면 내림차순으로 정렬된다.

 

order by 절에 여러 열을 지정할 경우 지정한 순서대로 정렬된다.

가령, order by [열 1], [열 2] 이라고 작성했을 경우,

[열 1]을 기준으로 오름차순 정렬하고 [열 1]이 같은 데이터끼리 [열 2]를 기준으로 오름차순 정렬한다.

 

order by 절을 사용하면 데이터를 정렬해서 출력할 수 있다.

또한, 같은 데이터끼리는 한 데 모이므로 데이터를 그룹별로 묶어 한 눈에 볼 수 있는 효과도 있다.

 

 

다음 예시를 살펴보자.

SELECT eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY sal DESC;

 

사원 정보를 급여 순으로 내림차순 검색하는 문장이다.

 

실행 결과는 다음과 같다.

 

 

 

별명을 이용한 정렬

order by 절의 정렬 대상을 칼럼의 별명으로 지정할 수도 있다.

SELECT eno 사번, ename 이름, sal*12+NVL(comm,0) 연봉
FROM emp
ORDER BY 연봉 DESC;

 

실행 결과

 

 

 

 

묶음 검색

order by절을 이용하면 같은 데이터끼리 묶어서 검색하는 효과도 있다.

다음 예시를 살펴보자.

SELECT job 업무, eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY 업무;

 

각 사원의 정보를 업무(job) 열을 기준으로 정렬하여 출력한다.

 

결과는 업무 열 기준 가나다 순으로 출력되긴 하겠지만, 업무 이름 사이에는 논리적인 순서가 없기 때문에 별 의미가 없다.

 

그렇다면 이 문장을 실행해서 얻을 수 있는게 무엇일까?

 

이러한 방식으로 데이터를 정렬하면 같은 데이터끼리 한 데 모아서 출력하는 효과를 얻을 수 있다.

묶음 검색이 가능한 것이다.

대단치 않은 것 같지만 여러모로 유용한 방법이다.

 

실행 결과는 다음과 같다.

 

출력 결과를 보면 같은 업무에 속한 사원들끼리 한 데 모여 출력되는 것을 볼 수 있다.