DB/오라클(Oracle)

[Oracle] 오라클 정렬 ORDER BY 사용법

푸코잇 2023. 11. 30. 00:10

ORDER BY란?

오라클에서는 조회한 데이터를 정렬할 때 ORDER BY를 사용한다.

정렬은 오름차순(ASC), 내림차순(DESC) 두 가지가 있다.

생략 시 DEFAULT 값으로 ASC가 적용된다.

 

ASC(오름차순 정렬)

-- 키(HEIGHT)를 기준으로 오름차순 정렬
SELECT PLAYER_NAME, HEIGHT FROM PLAYER ORDER BY HEIGHT ASC;

ORACLE-OREDR BY-ASC-오름차순정렬

 

DESC(내림차순 정렬)

-- 키(HEIGHT)를 기준으로 내림차순 정렬
SELECT PLAYER_NAME, HEIGHT FROM PLAYER ORDER BY HEIGHT DESC;

ORACLE-ORDER BY-DESC-내림차순정렬

 

NULL  정렬 우선순위 설정

-- NULLS LAST : NULL 맨 마지막에 출력
-- NULLS FIRST : NULL 맨 앞에 출력
SELECT PLAYER_NAME, HEIGHT FROM PLAYER ORDER BY HEIGHT DESC NULLS LAST;

ORACLE-ORDER BY-NULL정렬

 

 

다중 정렬

-- 키(HEIGHT)를 기준으로 내림차순 정렬한다.
-- 만약 키(HEIGHT)가 같은경우 몸무게(WEIGHT)를 기준으로 오름차순(DEFAULT ASC) 정렬한다.
SELECT PLAYER_NAME, HEIGHT, WEIGHT FROM PLAYER ORDER BY HEIGHT DESC, WEIGHT;

ORACLE-ORDER BY-여러개 칼럼 정렬

 

SELECT절에 없는 칼럼 기준 정렬

-- 키(HEIGHT)는 SELECT절에 없지만 PLAYER 테이블에 존재하므로 정렬 가능하다.
SELECT PLAYER_NAME FROM PLAYER ORDER BY HEIGHT;

ORACLE-ORDER BY-SELECT

 

GROUP BY와 함께 사용 시 주의할 점

-- 팀별 키(HEIGHT)의 총합 기준으로 오름차순 정렬
SELECT TEAM_ID FROM PLAYER GROUP BY TEAM_ID ORDER BY SUM(HEIGHT);

-- GROUP BY로 그룹화 하지않은 칼럼은 사용불가 (에러)
SELECT TEAM_ID FROM PLAYER GROUP BY TEAM_ID ORDER BY HEIGHT;

ORACLE-ORDER BY-GROUP BY