서브쿼리

윤혜림·2023년 7월 4일
0

서브쿼리

where 절의 select문

select *
from emp
where deptno = (select deptno from dept where loc='DALLAS');

인라인뷰

from 절의 select문

select ename, sal*12 allsal
from emp
where allsal > 30000;

오류난다
=> allsal이라는건 없음

select
from
(select ename, sal
12 allsal
from emp) e
where e.allsal > 30000;

이렇게 별칭을 붙여준다(e)

having을 안써도 됨

스칼라 서브쿼리

select 절의 select문

행이 1개면 1차원, 2개면 2차원...
1차원 스칼라일때만 가능하다.

스칼라 이기 때문에, 벡터처럼 데이터가 나열되면 안된다. 한건이어야 한다.
이때 그룹함수를 사용한다.

SELECT에서 15번의 while문을 돈다
14번 + 마지막으로 검사 1번

select round(avg(sal)) from emp;
select ename, sal, (select round(avg(sal)) from emp) as '월급평균'
from emp;

profile
도라에몽

0개의 댓글