[SQL] 다중 행 서브쿼리

·2025년 7월 8일
0

SQL

목록 보기
87/126

select ename, sal
 from emp
 where  sal in ( select  sal
                  from emp
                  where job='SALESMAN') ;

💡 서브쿼리에서 메인쿼리로 리턴되는 데이터가 여러개이므로
이퀄(=) 로는 비교 할 수 X. in 을 사용해야함

💡 서브쿼리의 종류 3가지

  1. 단일행 서브쿼리 : 서브쿼리에서 메인쿼리로 1개의 행의 값이 리턴되는 경우
    연산자: =, !=, <>, ^=, >, <, >=, <=
  2. 다중행 서브쿼리 : 서브쿼리에서 메인쿼리로 여러 개의 행의 값이 리턴되는 경우
    연산자: in, not in, >all, <all, >any, <any
  3. 다중 컬럼 서브쿼리 : 서브쿼리에서 메인 쿼리로 여러개의 컬럼값이 리턴되는 경우

문제1. emp21 테이블에서 통신사가 LG 인 학생들과 나이가 같은 학생들의 이름과 나이와 통신사를 출력하시오

select ename, age, telecom
 from emp21
 where age in ( select age
                from emp21
                where telecom='LG');

문제2. 월급이 1000에서 2000 사이인 사원들과 직업이 같은 사원들의 이름과 월급과 직업을 출력하시오

select ename, sal, job
 from emp
 where job in ( select job
                 from emp
                 where sal between 1000 and 2000);

문제3. 월급이 1000에서 2000 사이인 사원들과 직업이 같지않은 사원들의 이름과 월급과 직업을 출력하시오

select ename, sal, job
 from emp
 where job not in ( select job
                 	 from emp
                	 where sal between 1000 and 2000);

0개의 댓글