2020. 4. 30.

[Oracle] 4. 정렬을 이용한 자료 검색과 묶음 검색 정리


정렬된 데이터 검색

SQL> select [distinct | all] 컬럼 컬럼… from 테이블 order by 컬럼 [asc/desc], 컬럼 [asc/desc]….

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

SQL> select eno 사번, ename 이름, sal 급여 from emp order by sal desc;


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

SQL> select eno 사번, ename 이름 from emp order by sal*12+nvl(comm,0) desc;



SQL> select eno 사번, ename 이름, sal*12+nvl(comm,0) 연봉 from emp order by 연봉 desc;



SQL> select eno, ename, sal from emp order by eno;
= select eno, ename, sal from emp order by 1;

# 그림과 같이 열값 말고도 순서를 정수형으로 표현해도 가능함.

SQL> select eno, ename, sal from emp order by ename;
= select eno, ename, sal from emp order by 2 ;

SQL> select eno, ename, sal from emp order by sal;
= select eno, ename, sal from emp order by 3;

정렬을 이용한 묶음 검색

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

SQL> select job 업무, eno 사번, ename 이름, sal 급여 from emp order by 업무;


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

SQL> select dno 부서번호, eno 사번, ename 이름, sal 급여 from emp order by 부서번호, 급여 desc;


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

select sname from student order by avr desc;


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

select * from student order by major, avr desc;


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

select * from student order by 4, 6 desc;


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

select * from student order by 5 , 4, 6 desc;


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

select cname from course order by 3 desc;


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

select * from professor order by section;


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

select * from professor order by orders ;


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

select * from professor order by hiredate;



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

select ename, job, ((sal*1.1*12)+nvl(comm,0)) from emp order by job, ((sal*1.1*12)+nvl(comm,0)) desc;


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

select ename, job, ((sal*12)+nvl(comm*2,0)) from emp order by job, ((sal*12)+nvl(comm*2,0)) desc;


댓글 없음:

댓글 쓰기