[TIL][SQL] SELECT-07
ORDER BY 절
날짜를 기준으로 정렬할 때 오른차순과 내림차순을 기억해야 한다.
ORDER BY
절의 위치는 SQL 문장에서 가장 마지막에 적어야 한다.
앞에 뭐가 오든 마지막에 위치해야함!
지금까지 나온 keyword들의 순서
1. SELECT2. FROM
3. WHERE
4. ORDER BY 순으로만 적어야 한다.
- 오름차순 :
ASC
- 내림차순 :
DESC
기본값이 오름차순
SQL> SELECT ename, sal, hiredate
2 FROM emp ;
ENAME SAL HIREDATE
---------- ---------- --------
SMITH 800 80/12/17
ALLEN 1600 81/02/20
WARD 1250 81/02/22
JONES 2975 81/04/02
MARTIN 1250 81/09/28
BLAKE 2850 81/05/01
CLARK 3587.05 81/06/09
SCOTT 23.4 82/12/09
KING 7320.5 81/11/17
TURNER 1500 81/09/08
ADAMS 1100 83/01/12
JAMES 950 81/12/03
FORD 3000 81/12/03
MILLER 1903.33 82/01/23
SQL> SELECT ename, sal, hiredate
2 FROM emp
3 ORDER BY ename;
ENAME SAL HIREDATE
---------- ---------- --------
ADAMS 1100 83/01/12
ALLEN 1600 81/02/20
BLAKE 2850 81/05/01
CLARK 3587.05 81/06/09
FORD 3000 81/12/03
JAMES 950 81/12/03
JONES 2975 81/04/02
KING 7320.5 81/11/17
MARTIN 1250 81/09/28
MILLER 1903.33 82/01/23
SCOTT 23.4 82/12/09
SMITH 800 80/12/17
TURNER 1500 81/09/08
WARD 1250 81/02/22
SQL> SELECT deptno, sal, ename
2 FROM emp
3 ORDER BY deptno ASC, sal DESC ;
DEPTNO SAL ENAME
---------- ---------- ----------
10 7320.5 KING
10 3587.05 CLARK
10 1903.33 MILLER
20 3000 FORD
20 2975 JONES
20 1100 ADAMS
20 800 SMITH
20 23.4 SCOTT
30 2850 BLAKE
30 1600 ALLEN
30 1500 TURNER
30 1250 MARTIN
30 1250 WARD
30 950 JAMES
SQL> SELECT deptno, sal, ename
2 FROM emp
3 WHERE sal > 1000
4 ORDER BY 2, 1 ; --숫자는 컬럼의 순서를 말함. 즉, 2는 SELECT절의 2번쨰인 ename, 1은 SELECT절의 1번쨰인 sal
DEPTNO SAL ENAME
---------- ---------- ----------
20 1100 ADAMS
30 1250 WARD
30 1250 MARTIN
30 1500 TURNER
30 1600 ALLEN
10 1903.33 MILLER
30 2850 BLAKE
20 2975 JONES
20 3000 FORD
10 3587.05 CLARK
10 7320.5 KING
ORDER BY는 최대한 사용하지 말것!
` 성능이 완전 안좋아짐!`