如何在Postgres中创建下面的连接,这段代码来自Oracle,它有一个我不熟悉的连接条件。
T3.u_ffm_sub_id(+) = T3.u_ffm_id(+)它类似于self join,但(+)在条件的两边,所以我很困惑如何在postgres中创建相同的连接。
下面是完整的代码:
SELECT DISTINCT
CASE
WHEN MD.u_ffm_id = MD.u_ffm_sub_id THEN MD.patient
ELSE T3.patient
END
INTO lRet
FROM UPI.memdate MD,
UPI.memdate T3
WHERE T3.hmo = pHmo
AND T3.u_ffm_sub_id(+) = T3.u_ffm_id(+)
AND MD.hmo = T3.HMO(+)
AND MD.u_ffm_sub_id = T3.u_ffm_sub_id(+)
AND md.patient = pPatient;发布于 2021-12-02 12:36:42
这些是外连接,它们很容易转换为符合标准的SQL。
(+)在右侧:从a,b,其中a.x = b.y(+)
被翻译成
从a左连接b ON a.x = b.y
如果RIGHT JOIN.在另一端,则为
(+)在另一端,则它将是the如果(+)位于两端,则为
从a,b,其中a.x(+) = b.y(+)
被翻译成
从完全连接b OM a.x = b.y
https://stackoverflow.com/questions/70199278
复制相似问题