SQL*Plus, Inline view의 활용 – Outer joins시의 처리

SQL*Plus, Inline view의 활용 – Outer joins시의 처리

/**
 * 수정전
 */
SELECT
	x.FLD1
	, ...
	, y.COL1
FROM TAB1 x, TAB2 y
WHERE x.KEY = y.KEY(+)
AND x.FLD > 'AAA'
AND y.COL1(+) IN(10, 30, 50) /* Error 발생 */
/**
 * 수정후
 */
SELECT
	x.FLD1
	, ...
	, y.COL1
FROM 
(
	SELECT
		KEY
		, COL1
		, ...
		, COLn
	FROM TAB2
	WHERE COL1 IN(10, 30, 50)
) y, TAB1 x
WHERE x.KEY = y.KEY(+)
AND x.FLD1 > 'AAA'

원문 출처
Encore – 대용량 데이터베이스

Leave a Reply