다음 쿼리를 작성한 동료가 있습니다. 첫 번째 작품과 두 번째 않습니다. 또한 하위 쿼리에서 집계 함수를 제거하면 작동합니다. 오라클 옵티마이 저는 이상한 일을하고 있습니다. 이견있는 사람? 11.1.0.6.0 64 비트에 대해 SQL Developer 3.1에서 실행 중입니다.Oracle Optimizer 예기치 않은 결과
이 작동 :
SELECT
a.fd_customer_key
, b.fd_customer_key
, b.counter
FROM FETCH_CUSTOMER a
, (select fd_customer_key, count(*) as counter from fetch_customer_order group by fd_customer_key) b
where a.fd_customer_key = b.fd_customer_key (+)
and b.counter is null
이되지 않습니다
SELECT
a.fd_customer_key
, b.fd_customer_key
, b.counter
FROM FETCH_CUSTOMER a
, (select fd_customer_key, count(*) as counter from fetch_customer_order group by fd_customer_key) b
where a.fd_customer_key = b.fd_customer_key (+)
and b.fd_customer_key is null
우리가 작동하지 않는다고 말할 때, 어떤 행도 반환하지 않는다는 뜻입니다. – jcourtjr
이 또한 , B (fd_customer_key 의해 fetch_customer_order 군으로부터 1 fd_customer_key 선택) FETCH_CUSTOMER FROM b.fd_customer_key, a.fd_customer_key 을 선택'여기서 작동 a.fd_customer_key b.fd_customer_key = (+) 및 b.fd_customer_key 널이다 ' – jcourtjr
이것은 FETCH_CUSTOMER FROM b.fd_customer_key'일 a.fd_customer_key 를 선택하지 않는다 (fd_customer_key 선택 합 (1)에 의해 fd_customer_key fetch_customer_order 그룹) 여기서 B = a.fd_customer_key b.fd_customer_key (+) 이고 b.fd_customer_key가 null 인 경우 ' – jcourtjr