SQL中的(+)是什么意思?

mun*_*lli 7 sql

这个SQL语句中的Where子句中的(+)是什么意思?

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;
Run Code Online (Sandbox Code Playgroud)

mer*_*ike 8

在Oracle SQL中,这是不推荐使用的外连接运算符.


Jac*_*son 5

在 Oracle 中,(+) 指定联接是外联接(而不是这种隐式联接语法通常暗示的内联接)。

使其成为外连接意味着即使该特定项为空,该行也应包含在结果中。