과목 II SQL 기본 및 활용

제1장 SQL 기본

제8절 ORDER BY 절

1. ORDER BY 정렬

 

 

[예제] ORDER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 사람 이름을 내림차순으로 정렬하여 출력한다.

 SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버

 FROM PLAYER

 ORDER BY PLAYER_NAME DESC;

 

 

[실행결과]

(480개 행이 영향을 받음)

 

 


 

 

[예제] ORDER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 선수들의 포지션 내림차순으로 출력한다. 칼럼명이 아닌 ALIAS를 이용한다.

 SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버

 FROM PLAYER

 ORDER BY 포지션 DESC;

 

 

[실행결과]

(480개 행이 영향을 받음)

 

 


 

 

[예제] 한 개의 칼럼이 아닌 여러 가지 칼럼(Column)을 기준으로 정렬해본다. 먼저 키가 큰 순서대로, 키가 같은 경우 백넘버 순으로 ORDER BY 절을 적용하여 SQL 문장을 작성하는데, 키가 NULL인 데이터는 제외한다. 

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키

 FROM PLAYER

 WHERE HEIGHT IS NOT NULL

 ORDER BY HEIGHT DESC, BACK_NO;

 

 

[실행결과]

(447개 행이 영향을 받음)

 

 


 

 

[예제] ORDER BY 절의 예로 선수 테이블에서 선수들의 이름, 포지션, 백넘버를 출력하는데 선수들의 백넘버 내림차순, 백넘버가 같은 경우 포지션, 포지션까지 같은 경우 선수명 순서로 출력한다. BACK_NO가 NULL인 경우는 제외하고, 칼럼명이나 ALIAS가 아닌 칼럼 순서를 매핑하여 사용한다. 

 SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버

 FROM PLAYER

 WHERE BACK_NO IS NOT NULL

 ORDER BY 3 DESC, 2, 1;

 

 

[실행결과]

(480개 행이 영향을 받음)

 

 


 

 

[예제] DEPT 테이블 정보를 부서명, 지역, 부서번호 내림차순으로 정렬해서 출력한다. 아래의 SQL 문장은 출력되는 칼럼 레이블은 다를 수 있지만 결과는 모두 같다.

 

Case1. 칼럼명 사용 ORDER BY 절 사용

 SELECT DNAME, LOC, DEPTNO

 FROM DEPT

 ORDER BY DNAME, LOC, DEPTNO DESC;

 

 

[실행결과]

(4개 행이 영향을 받음)

 

 


 

 

Case2. 칼럼명 + ALIAS 명 사용 ORDER BY 절 사용

 SELECT DNAME DEPT, LOC AREA, DEPTNO
 FROM DEPT
 ORDER BY DNAME, AREA, DEPTNO DESC;

 

 

[실행결과]

(4개 행이 영향을 받음)

 

 


 

 

Case3. 칼럼 순서번호 + ALIAS 명 사용 ORDER BY 절 사용

 SELECT DNAME, LOC AREA, DEPTNO
 FROM DEPT
 ORDER BY 1, AREA, 3 DESC;

 

 

[실행결과] 

(4개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

Top N 쿼리  (1) 2013.10.08
SELECT 문장 실행 순서  (0) 2013.10.08
집계 함수와 NULL  (0) 2013.10.01
CASE 표현을 활용한 월별 데이터 집계  (0) 2013.10.01
HAVING 절  (0) 2013.09.30
Posted by G4.
,