Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- javascript
- input
- JVM
- mybatis
- 과정평가형
- Oracle
- eGov
- 태그
- spring
- html
- 개념
- 배열
- array
- Ajax
- CSS
- 오류
- POI
- sql
- select
- TO_DATE
- was
- jQuery
- eGovFramework
- Database
- Java
- web.xml
- json
- 암호화
- controller
- 함수
Archives
- Today
- Total
web developer
[oracle] WITH절 본문
728x90
728x90
WITH절이란
WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리라고 생각하시면 됩니다.
* 차이점
VIEW는 한번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은경우 한번 실행할 쿼리문내에 정의되어 있을경우, 그 쿼리문안에서만 실행된다는 차이점이 있습니다.
WITH절을 사용하는 이유
WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성능향상에 도움이 됩니다.
WITH temp AS (
SELECT * FROM TEST_01.TOY_BOARD
)
SELECT * FROM temp;
WITH temp1 AS (
SELECT 'MAX' AS CATEGORY, MAX(SCORE) FROM TEST_01.TOY_BOARD WHERE ROLE ='선수'
),
temp2 AS (
SELECT 'MIN' AS CATEGORY, MIN(SCORE) FROM TEST_01.TOY_BOARD WHERE ROLE ='선수'
UNION ALL
SELECT * FROM temp1
)
SELECT * FROM temp2;
728x90
728x90
'SQL > Oracle SQL' 카테고리의 다른 글
[oracle] DBMS_LOB 데이터 타입 및 함수 (0) | 2024.01.11 |
---|---|
[sql] oracle date(날짜) 요일 구하기 (0) | 2023.09.24 |
[sql] ORA-01861: literal does not match format string 에러 (0) | 2022.05.02 |
[sql] executeQueryForObject returned too many results. (0) | 2022.04.22 |
[sql] oracle 날짜/시간 update 하기 (2) | 2022.04.20 |