2010-08-23 8 views
5

Was bedeutet das (+) in den Where-Klauseln in dieser SQL-Anweisung?Was bedeutet (+) in SQL?

SELECT p.FIRSTNAME, 
     p.LASTNAME, 
     p.LOGINNAME, 
     a.DESCRIPTION, 
     a.PERIPHERALNUMBER, 
     a.SUPERVISORAGENT, 
     t.ENTERPRISENAME, 
     t.DIALEDNUMBERID, 
     sp.FIRSTNAME AS SUPER_FIRSTNAME, 
     sp.LASTNAME AS SUPER_LASTNAME, 
     sp.LOGINNAME AS SUPER_LOGINNAME, 
     sa.PERIPHERALNUMBER AS SUPER_PERIPHERALNUMBER, 
     sa.SUPERVISORAGENT AS SUPER_SUPERVISORAGENT, 
     a.SKILLTARGETID, 
     a.PERSONID, 
     t.AGENTTEAMID, 
     sa.SKILLTARGETID AS SUPER_SKILLTARGETID, 
     sa.PERSONID AS SUPER_PERSONID 
FROM C2O.AGENT a, 
     C2O.PERSON p, 
     C2O.AGENT_TEAM_MEMBER tm, 
     C2O.AGENT_TEAM t, 
     C2O.AGENT sa, 
     C2O.PERSON sp 
WHERE a.PERSONID = p.PERSONID 
AND  a.SKILLTARGETID = tm.SKILLTARGETID(+) 
AND  tm.AGENTTEAMID = t.AGENTTEAMID(+) 
AND  t.PRISUPERVISORSKILLTARGETID = sa.SKILLTARGETID(+) 
AND  sa.PERSONID = sp.PERSONID(+) 
AND  a.DELETED = 'N' 
AND  p.LOGINENABLED = 'Y' 
AND  SUBSTR(a.PERIPHERALNUMBER,2,3) = 580; 
+3

Mit welchem ​​RDBMS läuft das? SQL Server? Orakel? MySQL? Zugriff? – Oded

Antwort

6

In Oracle SQL ist dies der veraltete outer join operator.

+0

Es scheint auch für DB2/iSeries zu existieren; Ich habe es bei der Arbeit mit älteren Abfragen für diesen Server auch gefunden. –

2

In alten Oracle-Versionen bedeutet dies einen OUTER JOIN.

1

Es ist ein äußerer Operator in SQL Server anschließen würde es *= und =*

3

In Oracle werden, wodurch die (+) gibt an, dass die Verbindung ist eine äußere Verknüpfung (statt eines inneren als dieser impliziten Join-Syntax kommen in der Regel impliziert).

Wenn Sie eine äußere Verknüpfung erstellen, bedeutet dies, dass die Zeile in die Ergebnisse eingeschlossen werden soll, auch wenn diese bestimmte Position null ist.