정렬된 데이터 검색

SQL> SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...  
    FROM  테이블
    ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......

ASC      :  오름차순 (1, 2, 3, ...)

DESC   :  내림차순 (10, 9, 8, ...)

 

예제 1.  사원의 이름을 급여 순으로 검색한다.

SELECT eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY sal DESC;

사번    이름             급여
------- ---------- ----------
0001    안영희           4800
1001    문시현           4500
2003    정의찬           4350
1003    양선호           4300
1002    김주란           4100
0120    김경현           4000
2001    남궁연호         3950

 

예제 2. 사원의 사번과 이름을 연봉 순으로 검색한다.

SELECT eno 사번, ename 이름, sal*12+NVL(comm,0) 연봉
FROM emp
ORDER BY 연봉 DESC;

사번    이름             연봉
------- ---------- ----------
0001    안영희          57600
1001    문시현          54520
2003    정의찬          52200
1003    양선호          51600
0120    김경현          50500
1002    김주란          49530
0201    안영숙          48800

 

정렬을 이용한 그룹 검색

예제 3. 업무 별로 사원의 급여를 검색한다.

SELECT job 업무, eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY 업무;

업무    사번    이름             급여
------- ------- ---------- ----------
개발    2002    제갈민           1520
개발    2001    남궁연호         3950
개발    2003    정의찬           4350
개발    2007    이초록           1989
개발    2008    윤고은           2100
경영    0001    안영희           4800
모델링  1002    김주란           4100

 

예제 4. 각 부서별로 사원의 급여를 검색한다. 단 급여를 많이 받는 사람부터 검색한다.

SELECT dno 부서번호, eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY 부서번호, 급여 DESC;

부서 사번    이름             급여
---- ------- ---------- ----------
01   0001    안영희           4800
01   0201    안영숙           3900
01   0202    손하늘           3510
02   0301    이승철           3400
02   0302    박선경           3300
02   0801    천유정           2900
02   0702    김민지           1100

 

실습

1. 성적순으로 학생의 이름을 검색한다. 

SELECT sno 학번, avr 성적, sname 이름
FROM student
ORDER BY avr DESC;

학번          성적 이름
------- ---------- ----------
924501           4 권석복
918205        3.99 독고낭도
933904        3.98 임영현
938202        3.93 신섭인
938204        3.92 최현
945601         3.9 심정용
915601         3.9 강태용

 

2. 학과별 성적순으로 학생의 정보를 검색한다. 

SELECT major 학과, avr 성적, sno 학번, sname 이름
FROM student
ORDER BY major, avr DESC;

학과          성적 학번    이름
------- ---------- ------- ----------
물리             4 924501  권석복
물리          3.33 914504  심빈경
물리          3.33 914502  문수보
물리          3.22 934504  갑서진
물리           3.2 944503  곽득용
물리             3 924505  서찬호
물리          2.99 924502  은정현

 

3. 학년별 성적순으로 학생의 정보를 검색한다. 

SELECT syear 학년, avr 성적, sno 학번, sname 이름
FROM student
ORDER BY 학년, avr DESC;

      학년       성적 학번    이름
---------- ---------- ------- ----------
         1        3.9 945601  심정용
         1       3.71 948202  김성지
         1       3.56 945302  김람석
         1       3.25 943902  하정자
         1       3.23 948205  신형일
         1       3.21 948204  서창동
         1        3.2 944503  곽득용

 

4. 학과별 학년별로 학생의 정보를  성적순으로 검색한다. 

SELECT major 학과, avr 성적, syear 학년, sno 학번, sname 이름
FROM student
ORDER BY 학과, 학년, avr DESC;

학과          성적       학년 학번    이름
------- ---------- ---------- ------- ----------
물리           3.2          1 944503  곽득용
물리          2.76          1 944511  김형진
물리          1.99          1 944512  서동조
물리           .96          1 944501  최현각
물리          3.22          2 934504  갑서진
물리          2.33          2 934503  최모각
물리          2.16          2 934501  김아진

 

5. 학점 순으로 과목 이름을 검색한다. 

SELECT st_num 학점, cno 과목번호, cname 과목이름
FROM course
ORDER BY 학점 DESC;

      학점 과목번호  과목이름
---------- --------- ------------
         3 1217      고분자화학
         3 1782      세포배양학
         3 2312      생리학
         3 2119      영양생리학
         3 2115      식품분석실험
         3 1213      유기화학
         3 2111      식품화학

 

6. 각 학과별로 교수의 정보를 검색한다. 

SELECT section 학과, pno 교수번호, pname 이름, orders 지위, hiredate 부임일자
FROM professor
ORDER BY 학과;

학과    교수번  이름       지위    부임일자
------- ------- ---------- ------- --------
물리    1018    김응전     조교수  99/02/18
물리    1012    이영준     부교수  00/05/18
물리    1013    하영진     부교수  99/04/19
물리    1009    이준영     정교수  91/10/04
물리    1016    호연작     조교수  09/10/21
물리    1010    이규진     정교수  98/10/07
생물    1021    왕사진     정교수  97/02/17

 

7. 지위별로 교수의 정보를 검색한다. 

SELECT orders 지위, pno 교수번호, pname 이름, section 학과, hiredate 부임일자
FROM professor
ORDER BY 지위;

지위    교수번  이름       학과    부임일자
------- ------- ---------- ------- --------
부교수  1022    이준       생물    89/05/05
부교수  1032    이유당     유공    88/11/01
부교수  1036    성현수     유공    93/07/13
부교수  1034    최해연     식영    98/07/02
부교수  1012    이영준     물리    00/05/18
부교수  1004    시진영     화학    91/02/01
부교수  1006    장청아     화학    03/05/20

 

8. 각 학과별로 교수의 정보를 부임일자 순으로 검색한다. 

SELECT section 학과, hiredate 부임일자, pno 교수번호, pname 이름, orders 지위
FROM professor
ORDER BY 학과, 부임일자;

학과    부임일자 교수번  이름       지위
------- -------- ------- ---------- -------
물리    91/10/04 1009    이준영     정교수
물리    98/10/07 1010    이규진     정교수
물리    99/02/18 1018    김응전     조교수
물리    99/04/19 1013    하영진     부교수
물리    00/05/18 1012    이영준     부교수
물리    09/10/21 1016    호연작     조교수
생물    89/05/05 1022    이준       부교수

 

9. 급여가 10% 인상된 경우 부서별로 각 사원의 연봉을 연봉순으로 검색한다. 

SELECT job 부서, eno 사번, ename 이름, sal*1.1*12+NVL(comm,0) 연봉
FROM emp
ORDER BY 부서, 연봉 DESC;

부서    사번    이름             연봉
------- ------- ---------- ----------
개발    2003    정의찬          57420
개발    2001    남궁연호        52340
개발    2007    이초록        28554.8
개발    2008    윤고은          27720
개발    2002    제갈민          22064
경영    0001    안영희          63360
모델링  1001    문시현          59920

 

10. 보너스가 100% 인상된 경우 업무별로 각 사원의 연봉을 연봉순으로 검색한다.

SELECT eno 사번, ename 이름, sal*12+NVL(2*comm,0) 연봉
FROM emp
ORDER BY 연봉 DESC;

사번    이름             연봉
------- ---------- ----------
0001    안영희          57600
1001    문시현          55040
0120    김경현          53000
2003    정의찬          52200
1003    양선호          51600
0201    안영숙          50800
1002    김주란          49860

+ Recent posts