일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 환경변수등록
- 운영계
- Baekjoon
- 등호
- java
- eclipse shortcut
- SQL
- Collections.sort
- 마이플랫폼
- 펙토리얼
- 계정계
- StringTokens
- 기간계
- REACT
- fusionchart
- orangefororacle
- sqldeveloper
- 정보계
- oracle
- websquare
- NVM
- JavaScript
- 거듭제곱
- javascript내장함수
- innerjoin
- 등가조인
- 소수 #소인수분해 #소인수
- websqueare
- 컬럼조회
- 대외계
Archives
- Today
- Total
티끌모아 개발
서브쿼리의 종류 본문
1. 단일행 서브쿼리
서브쿼리의 결과가 1행. 등호, 부등호 이용
ex)
SQL> select ename, hiredate, sal
2 from emp
3 where sal >= (select avg(sal)
4 from emp
5 where hiredate between '1982/01/01' and '1982/12/31');
2. 다중행 서브쿼리
서브쿼리의 결과가 여러 행. in, >all, <all,>any, </all,>
ex)
where deptno in (select deptno
from emp
where ename like '%T%');
3. 다중컬럼 서브쿼리
서브쿼리의 결과가 여러 컬럼. where (컬럼1, 컬럼2) in (select~~)
ex)
select employee_id, last_name, salary, department_id
from employees e
where (department_id,salary) in (select department_id, max(salary)
from employees
group by department_id)
order by salary desc;
4. Inline View
from 절에 있는 서브쿼리. 자주사용하는 sql등록할때 사용
ex 1 ) inline view 생성
SQL> create view myempview
2 as
3 select deptno,max(sal) maxsal # maxsal : 반드시 alias 명시
4 from emp
5 group by deptno;
select * from myempview; 써보면 그 sql문이 실행된 결과 테이블을 보여준다.
view 연산에는 반드시 alias가 있어야 한다.
ex 2 ) rownum 사용할때 inline view 함께 사용
SQL> select rownum, ename, sal
2 from (select *
3 from emp
4 order by sal desc)
5 where rownum<4;
rownum 은 각 행에 대한 일련번호를 1부터 부여하는 임시 컬럼이다.
이때 order by 절을 이용하면 원하는 대로 정렬이 되지 않는다.
order by 대신 inline view로 구성한 후 작업해야 한다.
5. 스칼라 서브쿼리(Scala Subquery)
select 문에 있는 서브쿼리. 스칼라값(단일값)으로 1행만 반환하는 서브쿼리이다.
ex)
SELECT *, (SELECT COUNT(*) FROM product_reply WHERE product_id=p.product_id) AS reply_count,
(SELECT wish_id FROM wishlist WHERE product_id=p.product_id) AS wish_id,
from product p order by write_date desc
두 테이블에서 각각 reply_count 와 wish_id 한 행씩 가져온 쿼리문이다.
출처: https://withchu.tistory.com/22 [code with chu]
'sql' 카테고리의 다른 글
SP(Stored Procedure) 저장 프로시저 or 스토어드 프로시저 (0) | 2021.12.29 |
---|---|
[ORACLE]다중 테이블(2개이상) 조인시 주의사항. (0) | 2021.12.07 |
조인을 걸기 위해 생각해야 할 조건. (0) | 2021.12.03 |
조건값이 NULL일 때 데이터 출력 시 주의 사항(NVL vs CASE문)NVL에 대한 잘못된 이해 바로잡음. (0) | 2021.12.01 |
쿼리 실행 순서[펌] (0) | 2021.12.01 |