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 값이 맨 마지막에 위치한다.
'데이터베이스' 카테고리의 다른 글
[ORACLE] 함수 - 문자 처리 함수 (LENGTH, LENGTHB, INSTR, INSTRB) (0) | 2025.03.12 |
---|---|
[ORACLE] 함수 - 단일행 함수와 그룹 함수 (0) | 2025.03.12 |
[ORACLE] SELECT - 연산자, 연산자 우선순위 (0) | 2025.03.12 |
[ORACLE] SQL - SELECT문 (0) | 2025.03.12 |
[ORACLE] SQL - DQL, DML, DDL, DCL, TCL (0) | 2025.03.11 |