Database/SQL

[SQL] SELECT문 - ORDER BY 절

gangintheremark 2023. 7. 26. 16:30
728x90

기본적으로 테이블에 저장된 데이터는 정렬되어 있지않다. 따라 데이터를 조회할 때 특정 컬럼을 기준으로 정렬해서 검색해야 한다. ORDER BY의 옵션으로 오름차순인 ASC와 내림차순인 DESC 가 있으며 기본은 오름차순이다.

수치데이터 정렬

--  월급이 가장 높은 순서로 출력
SELECT employee_id,last_name, salary
FROM employees
ORDER BY salary DESC;

-- 별칭(alias)으로 지정 가능
SELECT employee_id,last_name, salary as 월급
FROM employees
ORDER BY 월급 DESC; 

-- SELECT 절에서 지정된 컬럼의 순서값으로 지정 가능
SELECT employee_id,last_name, salary as 월급
FROM employees
ORDER BY 3 DESC; 

 

문자데이터 정렬

-- 사원의 이름순으로 오름차순 정렬
SELECT employee_id,last_name as 이름
FROM employees
ORDER BY last_name ASC;

 

날짜데이터 정렬

오름차순으로 지정하면 가장 오래된 과거의 날짜가 먼저 출력되고 내림차순인 경우에는 가장 최근 날짜부터 출력된다.

--  입사일이 가장 최근인 사원부터 출력
SELECT employee_id,last_name,hire_date as 입사일
FROM employees
ORDER BY hire_date DESC;

 

다중 데이터 정렬

하나의 컬럼이 아닌 여러 개의 컬럼을 사용하여 정렬한다

--  월급으로 정렬 하고, 월급이 같은 사원이 존재할 경우 입사일이 빠른 사원부터 출력
SELECT employee_id,last_name,salary,hire_date
FROM employees
ORDER BY salary DESC, hire_date;

-- SELECT 절에서 지정된 컬럼의 순서값으로 지정 가능
SELECT employee_id,last_name,salary,hire_date
FROM employees
ORDER BY 3 DESC, 4;

 

널(Null) 값 정렬

정렬하는 컬럼에 널(Null)값이 존재하는 경우, Oracle은 Null 값을 가장 큰 값으로 처리

728x90