과목 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 |
[실행결과]
(4개 행이 영향을 받음)
Case3. 칼럼 순서번호 + ALIAS 명 사용 ORDER BY 절 사용
SELECT DNAME, LOC AREA, DEPTNO |
[실행결과]
(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 |