oracle sql右连接,oracle sql内连接_左(右)连接_全外连接_几种写法

----创建测试表

SQL> desc t_pkg;

Name       Type          Nullable Default Comments

---------- ------------- -------- ------- --------

ID         INTEGER       Y

ORDER_ID   VARCHAR2(100) Y

COMP_TYP   VARCHAR2(100) Y

COMP_MONEY NUMBER        Y

----插入数据至测试表

SQL> select * from t_pkg;

ID ORDER_ID                                                                         COMP_TYP                                                                         COMP_MONEY

--------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------

1 order_1                                                                          tele                                                                                    100

2 order_1                                                                          seller                                                                                   80

3 order_2                                                                          seller                                                                                  900

4 order_3                                                                          tele                                                                                    700

----如下sql查询(全外连接),3种情况:

--1种情况:有tele和seller

--2种情况:仅有tele

--3种情况:仅有seller

SQL> select

2  nvl(t_pkg1.id,t_pkg2.id) as id,

3  nvl(t_pkg1.order_id,t_pkg2.order_id) as order_id,

4  t_pkg1.comp_money as comp_money_1,

5  t_pkg2.comp_money as comp_money_2

6  from (select id,order_id,comp_money from t_pkg where comp_typ='tele') t_pkg1

7        full outer join

8       (select id,order_id,comp_money from t_pkg where comp_typ='seller') t_pkg2

9  on (t_pkg1.order_id=t_pkg2.order_id)

10  ;

ID ORDER_ID                                                                         COMP_MONEY_1 COMP_MONEY_2

---------- -------------------------------------------------------------------------------- ------------ ------------

1 order_1                                                                                   100           80

3 order_2                                                                                                900

4 order_3                                                                                   700

小结:1,全外连接的写法full outer  join或full join,条件用on

2,因为全外连接产生的结果可能列值为null,如果产生的结果集是中间结果集,还需要进一步处理,可以用nvl对此中间结果集的列(一般是关联列)进行转化,毕竟关联null列很麻烦

附上网上相关资源,供扩展阅读:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值