데이터베이스

[ORACLE] SQL - ORDER BY (ASC/DESC)

Seong-Jun 2025. 3. 12. 19:28
728x90
반응형
SMALL

SQL에서 SELECT 문을 사용하여 데이터를 조회한 결과를 정렬조건을 설정하여 출력할 수 있다. 이때 ORDER BY 절에 조건을 설정해 주면 된다.

 

ORDER BY 절을 보기 전에..

SQL DEVELOPER 응용 프로그램을 사용하는 경우(다른건 안 찾아봐서 모르겠습니다..)

 

도구 => 환경설정 => 데이터베이스 => 객체뷰어 에서 해당 체크란에 체크가 되어 있다면

데이터를 추가 혹은 수정할 때 해당 데이터에 ORA_ROWSCN을 적용한다는 것인데 ORA_ROWSCN는 데이터의 마지막 수정된 시간이다. 즉, 마지막으로 수정된 시간을 기준으로 정렬을 한다. (체크 해제하실 분은 체크 해제!)

 

SELECT 문

SELECT 조회할 컬럼, ...
FROM 테이블명
WHERE 조건
ORDER BY 정렬기준이되는컬럼 | 별칭 | 컬럼순번 [ASC | DESC] [NULLS FIRST | NULLS LAST]

 

ORDER BY 절은 SELECT 문의 각 절들 중 가장 마지막으로 실행되므로 SELECT 절에서 지정한 별칭을 사용할 수 있다. 추가로 SELECT 절에서 나열한 컬럼의 순번으로도 작성할 수 있는데 이때는 1부터 시작이다. 즉, 순번은 1부터 시작이다.

ORDER BY 절은 별칭과 컬럼의 순번도 사용 가능!
순번은 1부터 시작!

오름차순 ASC

ORDER BY 절에 특정 컬럼을 기준으로 정렬 조건을 줄 수 있는데 이때 컬럼명만 작성하게 되면 기본값으로 ASC가 적용된다.

내림차순 DESC

ORDER BY 절에서 내림차순으로 정렬을 하려고 할 때는 컬럼 뒤에 DESC를 작성해줘야 한다.

-- 모든 사원의 사원명, 연봉 조회 (연봉별 내림차순 정렬)
SELECT EMP_NAME AS "사원명", (SALARY * 12) AS "연봉"
FROM EMPLOYEE
-- ORDER BY SALARY * 12 DESC;
-- ORDER BY 2 DESC;
ORDER BY 연봉 DESC;

위의 출력 결과를 보면 연봉을 기준으로 내림차순 정렬이 된 것을 확인할 수 있다. 그런데 이상한 점은 NULL 값이 가장 상단에 위치하는 점이다. 이것을 통해 내림차순 정렬을 했을 경우 값이 NULL인 경우에는 가장 큰 값으로 취급한다는 것을 알 수 있다. 즉, DESC 정렬을 할 경우 NULLS FIRST가 기본값이다. 반대로 ASC 오름차순 정렬일 경우에는 NULLS LAST가 기본값으로 NULL 값이 맨 마지막에 위치한다.

728x90
반응형
LIST