Estoy revisando algunas declaraciones SQL antiguas con el fin de documentarlas y probablemente mejorarlas.Oracle "(+)" Operador
El DBMS es Oracle
no entendía una declaración que decía así:
select ...
from a,b
where a.id=b.id(+)
Me gustaría saber el operador (+)
, y no podía conseguir en cualquier foro ... (buscar + entre comillas tampoco funcionó).
De todos modos, he usado 'explicar el plan' de SQLDeveloper y me dieron una salida diciendo que HASH JOIN, RIGHT OUTER
, etc.
Habría alguna diferencia si quito el operador (+)
al final de la consulta? ¿La base de datos tiene que cumplir alguna condición (como tener algunos índices, etc.) antes de poder usar (+)
? Sería de gran ayuda si me puede proporcionar una comprensión simple, o algunos buenos enlaces donde pueda leer sobre esto.
Gracias!
Oh, gracias! - ¡No esperaba eso en absoluto! – Sekhar
Exactamente a la derecha. Para mantener el (+) recto en mi cabeza (lado izquierdo vs. lado derecho), me gusta pensar en (+) como "agregar valores NULL si no se encuentra una coincidencia". Por ejemplo, "a.id = b.id (+)" significa que permite que b.id sea NULL si no coincide con a.id. – beach
gracias ... Supongo que agregarlo en la cláusula debería dar el mismo resultado. –