Oracle
 sql >> Database >  >> RDS >> Oracle

Cosa significa un segno (+) in una clausola Oracle SQL WHERE?

Questa è una notazione specifica per Oracle per un outer join. Significa che includerà tutte le righe da t1 e utilizzerà NULLS nelle colonne t0 se non esiste una riga corrispondente in t0.

In SQL standard si scriverebbe:

SELECT t0.foo, t1.bar
  FROM FIRST_TABLE t0
 RIGHT OUTER JOIN SECOND_TABLE t1;

Oracle consiglia di non utilizzare più quei join se la tua versione supporta i join ANSI (LEFT/RIGHT JOIN):

Oracle consiglia di utilizzare la sintassi della clausola FROM OUTER JOIN anziché l'operatore di join Oracle. Le query di join esterno che utilizzano l'operatore di join Oracle (+) sono soggette alle seguenti regole e restrizioni […]