Sql Postgres帮助的Oracle语法
我正在尝试从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
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"