PL/SQL中(+)运算符的作用及示例场景疑问解析
PL/SQL中(+)运算符的用途说明
(+)是Oracle数据库专有的外连接语法,用来实现左/右外连接,是标准SQL JOIN语法普及前的特有写法,仅适用于Oracle环境。
针对你给出的例子 rec.ptp_id = PTP.ptp_id(+):
- 这里
(+)放在右侧表PTP的字段上,代表左外连接 - 左表
rec的所有行都会被保留;右表PTP只有当ptp_id与左表匹配时才会返回对应数据,无匹配时PTP的所有字段值为NULL
补充不同位置的含义:
- 如果
(+)放在左侧表字段上,比如rec.ptp_id(+) = PTP.ptp_id,则代表右外连接——右表PTP的所有行都会被保留,左表rec无匹配时字段值为NULL
注意:这种(+)语法属于Oracle旧写法,现在更推荐使用标准SQL的LEFT OUTER JOIN/RIGHT OUTER JOIN来实现外连接,可读性更强。比如上述左外连接可以改写为标准语法:
SELECT * FROM rec LEFT OUTER JOIN PTP ON rec.ptp_id = PTP.ptp_id
内容的提问来源于stack exchange,提问作者Medha Khairnar
相关产品推荐
相关产品推荐

