91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

全外連接的union all改寫方法是什么樣的

發布時間:2021-11-04 17:38:20 來源:億速云 閱讀:238 作者:柒染 欄目:建站服務器

這篇文章給大家介紹全外連接的union all改寫方法是什么樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

對于SQL中的連接操作在實現業務需求的時候比較方便和高效,這里針對“全外連接”展示一下在Oracle中的幾種寫法。
每種寫法因人而異,以滿足需求為目的。

有關內連接,左連接和右連接的簡單演示請參考:《【實驗】內連接,左連接,右連接,全外連接》http://space.itpub.net/519536/viewspace-563019

1.創建實驗表并初始化實驗數據
SQL> create table a (a number(1),b number(1),c number(1));
SQL> create table b (a number(1),d number(1),e number(1));
SQL> insert into a values(1,1,1);
SQL> insert into a values(2,2,2);
SQL> insert into a values(3,3,3);
SQL> insert into b values(1,4,4);
SQL> insert into b values(2,5,5);
SQL> insert into b values(4,6,6);
SQL> commit;

2.查看一下初始化數據內容
sec@ora10g> select * from a;

         A          B          C
---------- ---------- ----------
         1          1          1
         2          2          2
         3          3          3

sec@ora10g> select * from b;

         A          D          E
---------- ---------- ----------
         1          4          4
         2          5          5
         4          6          6

3.第一種寫法,這也是標準SQL的寫法。功能明確,不過理解有點小障礙。
sec@ora10g> select * from a full outer join b on a.a = b.a;

         A          B          C          A          D          E
---------- ---------- ---------- ---------- ---------- ----------
         1          1          1          1          4          4
         2          2          2          2          5          5
         3          3          3
                                          4          6          6

4.第二種寫法
思路:“a到b的全外連接”=“a到b的內連接” + “b到a的反連接” + “a到b的反連接”。
sec@ora10g> select *
  2    from a, b
  3   where a.a = b.a
  4  union all
  5  select *
  6    from a, b
  7   where a.a(+) = b.a
  8     and a.a is null
  9  union all
 10  select *
 11    from a, b
 12  where a.a = b.a(+)
 13     and b.a is null
 14  /

         A          B          C          A          D          E
---------- ---------- ---------- ---------- ---------- ----------
         1          1          1          1          4          4
         2          2          2          2          5          5
                                          4          6          6
         3          3          3

5.第三種寫法
思路:“a到b的全外連接”=“b到a的外部連接” + “a到b的反連接”。
sec@ora10g> select *
  2    from a, b
  3   where a.a(+) = b.a
  4  union all
  5  select *
  6    from a, b
  7   where a.a = b.a(+)
  8     and b.a is null
  9  /

         A          B          C          A          D          E
---------- ---------- ---------- ---------- ---------- ----------
         1          1          1          1          4          4
         2          2          2          2          5          5
                                          4          6          6
         3          3          3


6.小結
注意,改寫方法中的“union all”也可以修改為“union”,之所以上面改寫方法中我們使用union all,原因是出于性能方便的考慮,union all的執行效率遠大于union操作

這里展示的是一種轉換思路,
可一看了之。

關于全外連接的union all改寫方法是什么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴堡县| 孟州市| 泗洪县| 柘荣县| 卢龙县| 炎陵县| 新巴尔虎左旗| 浏阳市| 蒙自县| 固镇县| 深圳市| 汶上县| 云梦县| 克山县| 怀安县| 仁化县| 沈丘县| 抚宁县| 新龙县| 光山县| 油尖旺区| 永春县| 海南省| 河北区| 华安县| 苍梧县| 六盘水市| 原平市| 高邑县| 盐城市| 寻乌县| 内黄县| 炉霍县| 鄯善县| 遂宁市| 泸定县| 菏泽市| 嘉定区| 乐亭县| 工布江达县| 读书|