Tôi đang kiểm tra một số câu lệnh SQL cũ cho mục đích ghi lại chúng và có thể tăng cường chúng.Nhà điều hành Oracle "(+)"
DBMS là Oracle
tôi không hiểu một tuyên bố mà đọc như thế này:
select ...
from a,b
where a.id=b.id(+)
Tôi đang bối rối về các nhà điều hành (+)
, và không thể có được nó ở bất kỳ diễn đàn ... (tìm kiếm dấu + trong dấu ngoặc kép cũng không hoạt động).
Dù sao, tôi sử dụng 'Kế hoạch Giải thích' của SQLDeveloper và tôi có một đầu ra nói rằng HASH JOIN, RIGHT OUTER
vv
Nên có bất kỳ sự khác biệt nếu tôi loại bỏ các nhà điều hành (+)
ở phần cuối của các truy vấn? Cơ sở dữ liệu có đáp ứng một số điều kiện (như có một số chỉ mục, vv) trước khi (+)
có thể được sử dụng không ?? Nó sẽ rất hữu ích nếu bạn có thể cung cấp cho tôi một sự hiểu biết đơn giản, hoặc một số liên kết tốt, nơi tôi có thể đọc về điều này.
Cảm ơn!
Oh cảm ơn! - Không ngờ gì cả !! – Sekhar
Chính xác. Để giữ (+) thẳng trong đầu của tôi (bên trái so với bên phải), tôi thích nghĩ (+) là "thêm giá trị NULL nếu không tìm thấy kết quả phù hợp". Ví dụ: "a.id = b.id (+)" nghĩa là cho phép b.id thành NULL nếu không khớp với a.id. – beach
thanks..I đoán việc thêm nó vào từ mệnh đề sẽ mang lại kết quả tương tự !! –