※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
준비된 테이블, 데이터 (TMP_A, TMP_B)
SELECT * FROM TMP_A;
| M | |
| 1 | A |
| 2 | C |
SELECT * FROM TMP_B;
| M | |
| 1 | B |
| 2 | D |
| 3 | A |
WITH 문으로 쿼리를 묶어
가상테이블을 만든 후
간단히 사용 가능
예제 1)
WITH TABLE_INNER AS
(
SELECT *
FROM TMP_A A
INNER JOIN TMP_B B
ON (A.M = B.M)
)
SELECT * FROM TABLE_INNER
;
| M | M_1 | |
| 1 | A | A |
예제 2)
WITH TABLE_INNER AS
(
SELECT *
FROM TMP_A A
LEFT OUTER JOIN TMP_B B
ON (A.M = B.M)
)
SELECT * FROM TABLE_INNER
;
| M | M_1 | |
| 1 | A | A |
| 2 | C | (null) |
예제 3)
WITH TABLE_INNER AS
(
SELECT *
FROM TMP_A A
RIGHT OUTER JOIN TMP_B B
ON (A.M = B.M)
)
SELECT * FROM TABLE_INNER
;
| M | M_1 | |
| 1 | A | A |
| 2 | (null) | D |
| 3 | (null) | B |
예제 4)
WITH TABLE_INNER AS
(
SELECT A.M AS "AM"
, B.M AS "BM"
FROM TMP_A A
RIGHT OUTER JOIN TMP_B B
ON (A.M = B.M)
)
SELECT *
FROM TABLE_INNER
WHERE AM IS NULL
;
| AM | BM | |
| 1 | (null) | D |
| 2 | (null) | B |
예제 5)
WITH TABLE_INNER AS
(
SELECT A.M AS "AM"
, B.M AS "BM"
FROM TMP_A A
RIGHT OUTER JOIN TMP_B B
ON (A.M = B.M)
)
SELECT *
FROM TABLE_INNER
WHERE AM IS NOT NULL
;
| AM | BM | |
| 1 | A | A |
추가 예제)
WITH TABLE_A AS
(
SELECT 'A' AS "S" FROM DUAL
UNION ALL
SELECT 'B' AS "S" FROM DUAL
)
SELECT * FROM TABLE_A ;
WITH
TABLE_A AS
(
SELECT 'A' AS "S" FROM DUAL
UNION ALL
SELECT 'B' AS "S" FROM DUAL
),
TABLE_B AS
(
SELECT 'C' AS "S" FROM DUAL
UNION ALL
SELECT 'D' AS "S" FROM DUAL
)
SELECT * FROM TABLE_A
UNION ALL
SELECT * FROM TABLE_B ;
WITH
TABLE_A AS
(
SELECT 'A' AS "S" FROM DUAL
UNION ALL
SELECT 'B' AS "S" FROM DUAL
),
TABLE_B AS
(
SELECT 'C' AS "S" FROM DUAL
UNION ALL
SELECT 'D' AS "S" FROM DUAL
),
TABLE_C AS
(
SELECT 'E' AS "S" FROM DUAL
UNION ALL
SELECT 'F' AS "S" FROM DUAL
)
SELECT * FROM TABLE_A
UNION ALL
SELECT * FROM TABLE_B
UNION ALL
SELECT * FROM TABLE_C ;'프로그래밍 언어' 카테고리의 다른 글
| [MySQL] 외부에서 접속 시 "Your connection attempt failed for user" 에러 (0) | 2025.06.08 |
|---|---|
| [DB] ORACLE JOIN, ANSI JOIN (0) | 2024.04.22 |
| [C] C struct timeval (0) | 2016.06.20 |
| [Java script] setInterval(), clearInterval() 응용 (0) | 2016.06.01 |
| [Python] 이진파일과 텍스트파일 구분 (0) | 2014.10.05 |