일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
Tags
- Intellj
- u-03
- rocky8
- tlserror
- Java
- Oracle
- c##
- community server connector
- vscode
- arm64
- nexacro
- TLSv1
- Tibero
- 보안조치
- VisualStudioCode
- docker
- TLS1.1
- crownix7
- Linux
- MacOS
- U-06
- virtualfile
- gnu wget
- JetBrains
- r진법
- mac
- tls1.0
- rocky8.8
- generic i/o error
- Chrony
Archives
- Today
- Total
Jit_Log
[Oracle] With 절 본문
오라클9 이후부터 사용 가능한 이름이 부여 된 서브쿼리입니다. 가상 테이블을 만든다는 관점에서 VIEW TABLE과 쓰임새가 비슷하지만 유지되는 성질과 하나의 SQL문 내에서만 사용할 수 있다는 차이점이 있습니다.
WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다.
기본 문법
WITH TEST AS (
SELECT '국어' 과목, 56 점수, '가수' 이름 FROM DUAL
UNION ALL
SELECT '수학' 과목, null 점수, null 이름 FROM DUAL
UNION ALL
SELECT '수학' 과목, null 점수, null 이름 FROM DUAL
UNION ALL
SELECT '과학' 과목, 76 점수, '다수' 이름 FROM DUAL
UNION ALL
SELECT '영어' 과목, 86 점수, '마수' 이름 FROM DUAL
)
SELECT * FROM TEST
WITH절에 정의된 내용을 한번만 사용한다면 서브쿼리를 사용하는것과 크게 성능차이가 나지 않습니다.
WITH문의 가장 큰 장점은 한번 WITH절의 내용을 한번에 올려놓고 계속 재사용한다는것에 큰 의미가 있기에 WITH절에 구문을 여러번 참조하는 쿼리를 만들수록 그 효과가 배로 증가합니다.
다중 사용 (여러번 참조)
WITH TEST AS (
SELECT '국어' 과목, 56 점수, '가수' 이름 FROM DUAL
UNION ALL
SELECT '수학' 과목, null 점수, null 이름 FROM DUAL
UNION ALL
SELECT '수학' 과목, null 점수, null 이름 FROM DUAL
UNION ALL
SELECT '과학' 과목, 76 점수, '다수' 이름 FROM DUAL
UNION ALL
SELECT '영어' 과목, 86 점수, '마수' 이름 FROM DUAL
)
SELECT * FROM TEST WHERE 과목 = '국어'
UNION
SELECT * FROM TEST WHERE 과목 <> '과학'
'IT 공부 > Oracle & Tibero' 카테고리의 다른 글
[Oracle & Tibero] Generic I/O error (5) | 2024.11.14 |
---|---|
[Oracle] 이중쿼리로 최신 게시물 몇 개만 가지고 오기 (0) | 2022.03.12 |