SQL (3) - ORDER BY
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) 열을 기준으로 정렬하여 출력한다.
결과는 업무 열 기준 가나다 순으로 출력되긴 하겠지만, 업무 이름 사이에는 논리적인 순서가 없기 때문에 별 의미가 없다.
그렇다면 이 문장을 실행해서 얻을 수 있는게 무엇일까?
이러한 방식으로 데이터를 정렬하면 같은 데이터끼리 한 데 모아서 출력하는 효과를 얻을 수 있다.
즉 묶음 검색이 가능한 것이다.
대단치 않은 것 같지만 여러모로 유용한 방법이다.
실행 결과는 다음과 같다.
출력 결과를 보면 같은 업무에 속한 사원들끼리 한 데 모여 출력되는 것을 볼 수 있다.