2010-08-23 7 views
5

Que signifie le signe (+) dans les clauses Where de cette instruction SQL?Que signifie (+) dans 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

Sur quel SGBDR cela fonctionne-t-il? Serveur SQL? Oracle? MySQL? Accès? – Oded

Répondre

6

Dans Oracle SQL, il s'agit de outer join operator obsolète.

+0

Il semble exister pour DB2/iSeries également; Je l'ai rencontré en travaillant avec des requêtes plus anciennes pour ce serveur aussi. –

2

Dans les anciennes versions d'Oracle, cela signifie un OUTER JOIN.

1

Il est une jointure externe opérateur serveur SQL, il serait *= et =*

3

Dans Oracle, le (+) indique que la jointure est une jointure externe (au lieu d'une jointure interne que cette syntaxe de jointure implicite généralement implique). La faire une jointure externe signifie que la ligne doit être incluse dans les résultats même si cet élément particulier est null.