龙空技术网

SQL 中的 (+)用法

掌趣网络 529

前言:

眼前各位老铁们对“oracle 加号使用方法”大体比较注意,朋友们都想要剖析一些“oracle 加号使用方法”的相关资讯。那么小编在网摘上搜集了一些有关“oracle 加号使用方法””的相关文章,希望同学们能喜欢,朋友们一起来学习一下吧!

今天在代码review的时候,发现sql中很多 (+)的写法,看得头晕,记录下。对于sql逻辑比较复杂的场景不推荐是有 (+),容易自己晕掉。

Oracle sql 中 (+)号可以理解为补充的意思,即哪个表有加号,这个表就是匹配表。加在右表的列上代表右表为补充,为左外连接。加在左表的列上代表左表为补充,为右外连接。

注:完全外连接不支持(+)写法;在MySQL中不能作为左右连接标识。

举例:

select * from t_emp_info e, t_oragan_info g where e.organ_code = g.organ_code(+)

解释:e.organ_code = g.organ_code(+)表示t_oragan_info是补充匹配表,即t_oragan_info表中不存在匹配的记录,在t_emp_info表也查询出来,相当于左连接(left join)。

注意事项:

(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。

当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。

(+)操作符只适用于列,而不能用在表达式上。

(+)操作符不能与or和in操作符一起使用。

(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

标签: #oracle 加号使用方法 #oracle 加号