Oracle 號的使用

2021-09-13 13:51:05 字數 943 閱讀 1285

oracle 中(+) 號是一種特殊用法,表示外鏈結,可以在左連線和右連線時使用,但是不能用於實現全外連線

left join是以左表的記錄為基礎的,示例中t_a可以看成左表,t_b可以看成右表,它的結果集是t_a表中的全部資料,再加上t_a表和t_b表匹配後的資料。換句話說,左表(t_a)的記錄將會全部表示出來,而右表(t_b)只會顯示符合搜尋條件的記錄。t_b表記錄不足的地方均為null。

例如:select a.a,b.a from a left join b on a.b=b.b;

或select a.a,b.a from a a left outer join b on a.b = b.b;

等價於select a.a,b.a from a,b where a.b = b.b(+);

和left join的結果剛好相反,是以右表(t_b)為基礎的。它的結果集是t_b表所有記錄,再加上t_a和t_b匹配後的資料。 t_a表記錄不足的地方均為null。

select a.a,b.a from a right join b on a.b=b.b;

或select a.a ,b.a from a right outer join b on a.b = b.b;

等價於select a.a,b.a from a,b where a.b (+) = b.b;

左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方均為null。 全外連線不支援(+)寫法。

1、(+)操作符只能出現在where子句中,並且不能與outer join語法同時使用。

2、 當使用(+)操作符執行外連線時,如果在where子句中包含有多個條件,則必須在所有條件中都包含(+)操作符。

3、(+)操作符只適用於列,而不能用在表示式上。

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

5、(+)操作符只能用於實現左外連線和右外連線,而不能用於實現完全外連線。

引用:

Oracle 生成流水號

輔助表 rul sequence 表中資料如圖 輔助儲存過程 proc getseqence create or replace procedure proc getseqence seqcode in varchar2,returnnum out varchar2,messagecode out ...

Oracle 外連線和 號的用法

表 pandaa pandab id name id job parent id 1 panda 1 吃 11 2 kongfu 2 喝 12 3 nuddle 4 睡 13 左外鏈結 左邊表不限制 右邊表等值連線 左面表所有資料那過來,右面表按id等值鏈結,沒值的顯示空值 select from ...

Oracle外連線和「 」號的用法

對於外連線,oracle中可以使用 來表示,9i可以使用left right full outer join,下面將配合例項一一介紹。1.left outer join 左外關聯 select e.last name,e.department id,d.department name from em...