우리는 데이터를 내림차순, 오름차순으로 정렬해서 사용할 필요가 있다. 데이터 베이스에서는 order by 명령어를 사용해서 컬럼을 정렬할 수 있다. 정렬 가능한 항목은 숫자 뿐만 아니라 알파벳, 한글까지 포함한다.
SELECT 출력할 컬럼
FROM 테이블 명
WHERE 조건
ORDER BY 정렬할 컬럼
위의 쿼리문은 테이블에서 정렬할 컬럼을 오름차순 으로 정렬하고 결과를 보여준다.
EMPLOYEES 테이블
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
-- 급여에 따라 오름차순으로 정렬한다.
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
ORDER BY SALARY ASC;
-- 급여에 따라 내림차순으로 정렬한다.
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
ORDER BY SALARY DESC;
-- JOB_ID가 'IT_PROG' 인 사람에 대해
-- 급여를 기준으로 내림차순 정렬한다.
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE JOB_ID = 'IT_PROG'
ORDER BY SALARY DESC;
-- MANAGER_ID 가 NULL 이면 제일 앞으로 오고,
-- 오름차순 정렬한다.
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, MANAGER_ID
FROM EMPLOYEES
ORDER BY MANAGER_ID NULLS FIRST;
-- MANAGER_ID 가 NULL 이면 제일 뒤에 오고,
-- 내림차순 정렬한다.
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, MANAGER_ID
FROM EMPLOYEES
ORDER BY MANAGER_ID DESC NULLS LAST;
-- 직원 번호를 기준으로 내림차순 정렬한다.
SELECT *
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID DESC;
-- 매니져 아이디로 정렬하고,
-- 그 안에서 SALARY를 정렬한다.
SELECT FIRST_NAME, LAST_NAME, SALARY, MANAGER_ID
FROM EMPLOYEES
ORDER BY MANAGER_ID NULLS FIRST, SALARY ASC;
-- ALIAS(별명)로도 정렬이 가능하다.
SELECT FIRST_NAME, LAST_NAME, SALARY*12 AS ANNUAL
FROM EMPLOYEES
ORDER BY ANNUAL DESC;
-- 부서 번호로 내림차순 정렬하고,
-- 그 안에서 직업 번호로 오름차순 정렬한다.
-- 그리고 연봉을 기준으로 내림차순 정렬한다.
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY, HIRE_DATE, JOB_ID, DEPARTMENT_ID
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID DESC, JOB_ID ASC, SALARY DESC;
출처 : https://qkrrudtjr954.github.io/data%20base/2017/12/11/oracle-order-by.html
'Oracle Database > SQL' 카테고리의 다른 글
[ORACLE] 데이터 베이스의 그룹화 (0) | 2018.06.26 |
---|---|
[ORACLE] DB의 테이블 생성 및 수정 (0) | 2018.06.26 |
[ORACLE] 데이터 베이스의 조인 (0) | 2018.06.26 |
[ORACLE] 데이터 베이스의 기본 (0) | 2018.06.26 |
[ORACLE] DB의 무결성 제약 조건 (0) | 2018.06.26 |