2009. 3. 14. 03:11 Program.../Oracle
Oracle All 함수
---- all 함수 : 해당컬럼을 모두 비교해라. (and와 같다.)
--///// 하위 문법은 Oracle DB 에서는 잘되나, MS-SQL은 문법오류가 생긴다. 그래서 all 함수를 사용한다.
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) = (select max(sum(sal)) -- 그룹함수안에 그룹함수는 한번만 사용가능하다.
from EMP
group by deptno);
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) >= all(select sum(sal) -- 그룹함수는 null값이 존재치 않기때문에
from EMP -- where 컬럼 is not null을 사용하지 않아도 된다.
group by deptno);
-------- 연습문제 : sal가 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.
select ename, job, sal
from emp
where sal = (select max(sal) from emp);
select ename, job, sal
from EMP
where sal >= all(select sal from emp); -- sal을 비교해서 sal과 같거나 큰것을 찾는다.
-------- 연습문제 : comm이 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.
select ename, job, comm
from emp
where comm = (select max(comm) from emp);
select ename, job, comm
from EMP
where comm >= all(select comm from emp); -- 해당 컬럼에 null이 존재하면 오류가 나온다.
select ename, job, comm
from EMP
where comm >= all(select comm from emp where comm is not null);
'Program... > Oracle' 카테고리의 다른 글
Oracle cross join, natural join, using 절 (0) | 2009.03.14 |
---|---|
Oracle 다중 테이블로부터의 데이타 검색 (0) | 2009.03.14 |
Oracle rollup, cube 함수 (0) | 2009.03.14 |
Oracle Having 절 (0) | 2009.03.14 |
Oracle Group by 절 (0) | 2009.03.14 |