Không, không có điều kiện nào mà các tập kết quả sẽ khác nhau.
Nhưng giả định của bạn "a.id = b.id(+)
không có nghĩa "không đúng 100%. Nó có một ý nghĩa, bởi vì nó xác định phép nối, nếu không thì đây sẽ là tích cacte của a và b với tất cả các hàng từ a và b.name ='XYZ'.
Điều không có tác dụng là (+)
, bởi vì câu lệnh này sai "về mặt ngữ nghĩa". Không có ý nghĩa gì khi tham gia bên ngoài trên id nhưng tham gia trên tên.
Thông thường, một cái gì đó tương tự được mong muốn:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Ví dụ ngắn gọn tại http://www.sqlfiddle.com/#!4/d19b4/ 15