- select 문에서 가장 나중에 고려됩니다
1. 정렬 순서
① 오름차순: ASC --> 기본값
② 내림차순: DESC
③ null값의 경우 - 오름차순: 맨 뒤
- 내림차순: 맨 앞
2. 정렬 기준
① select list element 이름, 컬럼 alias(column 이름, column alias)
② 숫자 (select-list 상의 위치값)
③ 표현식 : 수식, 함수
1) select list element 이름(컬럼 이름), 컬럼 alias
==> select-list에 나오지 않은 컬럼도 쓸 수 있음
-------------------------
cf.)
==> ERROR: ORA-00904: "ANN_SAL": 부적합한 식별자
<-- column alias는 where 절에서 사용할 수 없으므로
cf.) column alias는 group by 절에서도 사용할 수 없습니다.
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
4 Select 12 * sal ann_sal
1 From emp
2 Where ann_sal>3000
3 GROUP BY ann_sal(X)
5 Having
6 Order by
-------------------------
2) 숫자(select-list 상의 위치값)
==> 중간에 컬럼이나 수식이 삽입될 경우 정렬 순서가 달라집니다
3) 수식
SQL> / --> /는 sql buffer의 내용을 실행하는 SQL*Plus 명령
SQL> / --> 실행할 때마다 정렬 순서가 달라집니다. 왜 그럴까요?
------------------------------------------------------
SQL> select empno, ename, mod(empno, 5)
from emp;
SQL> select empno, ename
from emp
order by mod(empno, 5);
SQL> select empno, ename, mod(empno, 5)
from emp
order by mod(empno, 5);
※modulus :나머지를 구하는 함수
mod(m,n) = 0 ~ n-1
-------------------------------
# 연습문제 풀이시
-------------------------------
- 현재 실습용 서버의 employees, departments 등의 테이블은 데이터 일부만 존재합니다.
- 연습문제에서 employees, departments 등의 테이블은 hr.employees, hr.departments 등으로
테이블 이름 앞에 hr. 을 붙여서 사용하시기 바랍니다.
'Oracle > SQL Fundamentals I' 카테고리의 다른 글
5일차 Miscellaneous(기타) (0) | 2012.04.09 |
---|---|
5일차 # SQL*Plus의 이해 (0) | 2012.04.09 |
4일차 # 2-18: 연산자 우선순위 (0) | 2012.04.06 |
4일차 # 2-17: NOT 연산자 (0) | 2012.04.06 |
4일차 # 2-14: 논리 연산 (0) | 2012.04.06 |