Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- tibero
- 알고리즘
- python algorithm
- it 용어
- sql
- Oracle VM VirtualBox
- csharp
- 파이썬 알고리즘
- Python DataFrame
- it용어
- putty
- 파이썬
- HTML
- Algorithm
- 코딩테스트
- dbeaver
- PYTHON
- Oracle
- 파이썬 데이터프레임
- C#
- linux
- 리눅스 명령어
- MariaDB
- Python 라이브러리
- 데이터베이스
- 파이썬 전처리
- 오라클
- RFP
- VirtualBox
- 리눅스
Archives
- Today
- Total
오경석의 개발노트
Oracle_ORDER BY 절 본문
ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용한다. ORDER BY 절에 칼럼(Column)명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능하다. 그리고 별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용되며, SQL 문장의 제일 마지막에 위치한다.
ORDER BY 절의 2가지 정렬 방식
- ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬(기본 값이므로 생략 가능)
- DESC(Descending) : 조회한 데이터를 내림차순으로 정렬
ORDER BY 절의 특징
- 기본적인 정렬 순서는 오름차순(ASC)
- 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력
- 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 빠른 값이 먼저 출력
- Oracle에서는 NULL 값을 가장 큰 값으로 간주하여 오름차순으로 정렬했을 경우에는 가장 마지막에, 내림차순으로 정렬했을 경우에는 가장 먼저 위치
- 반면, SQL Server에서는 NULL 값을 가장 작은 값으로 간주하여 오름차순으로 정렬했을 경우에는 가장 먼저, 내림차순으로 정렬했을 경우에는 가장 마지막에 위치한다.
SELECT 칼럼명 [ALIAS명]
FROM 테이블명
[WHERE 조건식]
[GROUP BY 칼럼(Column)이나 표현식]
[HAVING 그룹조건식]
[ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]] ;
[예제] ORDER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 사람 이름을 내림차순으로 정렬하여 출력한다.
SELECT
PLAYER_NAME AS 선수이름,
POSITION AS 포지션,
BACK_NO AS 백넘버
FROM PLAYER
ORDER BY PLAYER_NAME DESC; -- ORDER BY 절에 칼럼명이 아닌 ALIAS 이용 가능
[예제] 한 개의 칼럼이 아닌 여러 가지 칼럼(Column)을 기준으로 정렬해본다. 먼저 키가 큰 순서대로, 키가 같은 경우 백넘버가 큰 순으로 ORDER BY 절을 적용하여 SQL 문장을 작성하는데, 키가 NULL인 데이터는 제외한다.
SELECT
PLAYER_NAME AS 선수이름,
POSITION AS 포지션,
BACK_NO AS 백넘버,
HEIGHT AS 키
FROM PLAYER
WHERE HEIGHT IS NOT NULL
ORDER BY HEIGHT DESC, BACK_NO DESC;
[예제] ORDER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 선수들의 백넘버 내림차순, 백넘버가 같은 경우 포지션, 포지션까지 같은 경우 선수명 순서로 출력한다. BACK_NO가 NULL인 경우는 제외하고, 칼럼명이나 ALIAS가 아닌 칼럼 순서를 매핑하여 사용한다.
SELECT
PLAYER_NAME AS 선수이름,
POSITION AS 포지션,
BACK_NO AS 백넘버
FROM PLAYER
WHERE BACK_NO IS NOT NULL
ORDER BY BACK_NO DESC, POSITION, PLAYER_NAME;
[예제] DEPT 테이블 정보를 부서명, 지역, 부서번호 내림차순으로 정렬해서 출력한다. 아래의 SQL 문장은 출력되는 칼럼 레이블은 다를 수 있지만 결과는 모두 같다.
-- Case1. 칼럼명 사용 ORDER BY 절 사용
SELECT
DNAME,
LOC,
DEPTNO
FROM DEPT
ORDER BY DNAME, LOC, DEPTNO DESC;
-- Case2. 칼럼명 + ALIAS 명 사용 ORDER BY 절 사용
SELECT
DNAME DEPT,
LOC AREA,
DEPTNO
FROM DEPT
ORDER BY DNAME, AREA, DEPTNO DESC;
-- Case3. 칼럼 순서번호 + ALIAS 명 사용 ORDER BY 절 사용
SELECT
DNAME,
LOC AREA,
DEPTNO
FROM DEPT
ORDER BY 1, AREA, 3 DESC;
출처 : SQL 전문가 가이드
'프로그래밍 언어 > Oracle' 카테고리의 다른 글
Oracle_조인 (1) | 2023.11.15 |
---|---|
Oracle_SELECT 문장 실행 순서 (1) | 2023.11.12 |
Oracle_GROUP BY, HAVING 절 (0) | 2023.11.10 |
Oracle_집계함수 (0) | 2023.11.10 |
Oracle_WHERE 절 (0) | 2023.11.10 |
Comments