Sql Postgres帮助的Oracle语法

Sql Postgres帮助的Oracle语法,sql,Sql,我正在尝试从Oracle转换此代码: CREATE VIEW PLANNED AS SELECT ASP.ASP_SPACE_NM, SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) "TOTAL_PLANNED" FROM OBJECTIVE MO, SPACE ASP WHERE ASP.ASP_SPACE_NM = MO.ASP_SPACE_NM (+) AND MO.MO_MSN_CLASS_NM = 'EPIC' GROUP BY ASP

我正在尝试从Oracle转换此代码:

CREATE VIEW PLANNED AS
SELECT ASP.ASP_SPACE_NM,
       SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) "TOTAL_PLANNED"
  FROM OBJECTIVE MO, SPACE ASP
 WHERE ASP.ASP_SPACE_NM = MO.ASP_SPACE_NM (+)
   AND MO.MO_MSN_CLASS_NM = 'EPIC'
 GROUP BY ASP.ASP_SPACE_NM
去博士后

这其中有两行让我很困惑:

   SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) "TOTAL_PLANNED"
这个和这个一样吗

   SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) AS TOTAL_PLANNED
我不知道(+)在这行中是什么意思:

 WHERE ASP.ASP_SPACE_NM = MO.ASP_SPACE_NM (+)

这是老派的、特定于Oracle的左连接语法。您要将其替换为:

CREATE VIEW PLANNED AS
   SELECT s.asp_space_nm,
          SUM(o.mo_tkr_total_off_scheduled) 'total_planned'
     FROM SPACE s
LEFT JOIN OBJECTIVE o ON o.asp_space_nm = s.asp_space_nm 
                     AND o.mo_msn_class_nm = 'EPIC'
 GROUP BY s.asp_space_nm
参考:


+
表示(编辑:左)外部连接

确实很可能与

SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) as "TOTAL_PLANNED"
如果我没记错的话,PostgreSQL中也不需要
as
(尽管在我看来这使它更加明确)

您可以查看Postgresql wiki上的以下页面以了解更多差异:

SUM(MO.MO_TKR_TOTAL_OFF_SCHEDULED) as "TOTAL_PLANNED"