sql中timestamp用法_SQL 中的 (+)用法

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

5c5df6fe413265710af597924b2f77e8.png

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

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

06b63eb2427d65ca0c9184e3919925b5.png

举例:

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语法同时使用。

4ec58aa3d8bd0c9010f741b195b9edc6.png

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值