23-12-01 9장 실행결과가 여러개인 다중행 서브쿼리

sun·2023년 12월 11일
0

SQL

목록 보기
3/15

--다중행 연산자 :

--IN : 결과중 하나라도 일치하는 데이터가 있으면 TRUE

--ANY,SUM : 하나 이상이면 TRUE

--ALL : 서브쿼리에 결과가 모두 만족하면

--EXISTS : 결과값이 존재하면 (행이 하나라도 있으면) TRUE

첫째마당 DML DDL DCL

권한롤관리가 셋째마당

넷쨰마당 데이터 반복처리

SELECT * FROM EMP

--ALL ()괄호 안 모든 조건 만족함수

WHERE SAL > ALL(SELECT SAL FROM EMP WHERE DEPTNO=30);


--30번 부서 사원들의 최소 급여보다 많은 급여를 받는 사원 정보를 촐력
--단 MIN 함수 사용금지

SELECT * FROM EMP--ANY -2850 보다 적은 사원정보 출력하기
WHERE SAL > ANY(SELECT SAL FROM EMP WHERE DEPTNO=30);


--IN연산자
--부서번호가 20번 이서나 30인 사원정보 출력

SELECT * FROM EMP WHERE DEPTNO IN (20,30);


--각 부서별 최고급여와 동일한 급여를 받는 사원정보 출력하기

-- 단일행 연산자 쓰지 않도록 주의

SELECT * FROM EMP WHERE SAL IN
(SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO);


--EMP 사원중 10번 부서 사원들 보다 먼저 입사한 직원정보
--해석 : DEPTNO 10보다 빠른 HITEDATE인 EMP정보

SELECT * FROM EMP WHERE HIREDATE <
ALL (SELECT HIREDATE FROM EMP WHERE DEPTNO =10);


상관서브쿼리

  • 인덱스를 타고오기 때문에 데이터 조회 빠름
    --각 부서의 최대급여를 받는 사원의 부서코드, 이름, 급여를 출력해라
    --단 상관서브쿼리 사용

SELECT DEPTNO , ENAME, SAL
FROM EMP E1--애일리언스
WHERE E1.SAL = (SELECT MAX(SAL) FROM EMP E2 WHERE E2.DEPTNO = E1.DEPTNO);

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

0개의 댓글

관련 채용 정보