日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle union详解,Oracle中的union和join

發(fā)布時間:2025/4/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle union详解,Oracle中的union和join 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有時候,我們需要把很多表的查詢結(jié)果給合并在一起顯示或者導(dǎo)出,有時候呢我們又需要幾張表聯(lián)合一些條件進行查詢,所以我們常會用到j(luò)oin和union語句。

官方說明

包含UNION [ALL], INTERSECT, MINUS三個操作符,具有相同的優(yōu)先級(可以用(...)進行改變優(yōu)先級),含有多個的時候,自左至右進行計算。

在每個組成UNION查詢的子查詢中,其select list(選擇列表)必須具有相同的數(shù)量和數(shù)據(jù)組類型。

如果子查詢選擇的是字符數(shù)據(jù),其返回值的數(shù)據(jù)類型由下決定:所有的子查詢選擇的char值具有相同的length,返回值就是char(length)。如果查詢的值類型分別是char(length1), char(length2)...,其返回值是varchar2(max(length1,length2,...))

如果子查詢選擇的值都是varchar2,那么返回值就是varchar2。

對于選擇的是數(shù)值數(shù)據(jù):

任何一個查詢選擇的值是binary_double,其返回值就是binary_double。

任何一個查詢選擇的值是binary_float,其返回值就是binary_float。

所有查詢選擇的值是number,其返回值才是number。

使用這幾個集操作符的時候,Oracle不會進行隱含的數(shù)據(jù)類型組之間的轉(zhuǎn)換。所以,如果查詢包含number和char類型的話,Oracle返回一個錯誤。

比如:select '3' from dual

intersect

select 3f from dual;

會返回一個錯誤。但:select 3 from dual

intersect

select 3f from dual;

則會被在類型組內(nèi)隱含進行轉(zhuǎn)換成:select to_binary_float(3) from dual

intersect

select 3f from dual;

限制

集操作符服從以下限制:對列類型為BLOB, CLOB, BFILE, VARRAY或者嵌套表無效。

UNION, INTERSECT, MINUS對LONG列無效。

在集操作符前的選擇列表包含表達式的話,那么必須得對列設(shè)置別名以便后面在order by clause內(nèi)使用。

不能用for_update_clause共用

在這些操作符的子查詢內(nèi)不能使用order_by_clause

You cannot use these operators in SELECT statements containing TABLE collection expressions.

Example查詢中to_char(null)用在當(dāng)表中沒有某列的時候來匹配數(shù)據(jù)類型。SELECT location_id, department_name "Department",

TO_CHAR(NULL) "Warehouse" FROM departments

UNION

SELECT location_id, TO_CHAR(NULL) "Department", warehouse_name

FROM warehouses;

union操作符聯(lián)合結(jié)果中不重復(fù)的結(jié)果,union all聯(lián)合所有的結(jié)果。SELECT product_id FROM order_items

UNION

SELECT product_id FROM inventories;

SELECT location_id FROM locations

UNION ALL

SELECT location_id FROM departments;

INTERSECT相交操作符聯(lián)合子查詢中都有的行。SELECT product_id FROM inventories

INTERSECT

SELECT product_id FROM order_items;

MINUS相減操作符聯(lián)合第一個查詢的行并且沒有在第二個查詢中出現(xiàn)的行(同時會去重)。SELECT product_id FROM inventories

MINUS

SELECT product_id FROM order_items;

JOIN

官方說明

JOIN用來從兩或多個表、視圖、物化視圖中結(jié)合數(shù)據(jù)。在FROM后面的表都會進行一個JOIN操作,這樣我們就可以用SELECT語句查詢這個JOIN中的任意列。當(dāng)然,如果這些表中有相同名的列,就要用tbl.col這樣的形式來來完整引用列了。

Join Conditions

大多數(shù)join查詢有一個Join Condition,可能出現(xiàn)在FROM或WHERE語句中,其會比較從不同表中的兩列。對Join Contidion為TRUE的行,就把兩個表中那一行組合成一行。需要注意的是不能出現(xiàn)在select list中。

對與join三個或以上的表,Oracle首先Join根據(jù)Join ConditionJoin前兩個表,然后再把表這個結(jié)果和新表根據(jù)Join Conditon進行Join,直到把所有表都Join完。Oracle的Optimizer了決定Join的順序。

Equijoins

一個equijoin就是Join Condition包含一個等號,對指定的列具有相等的值的行進行Join。

Self Joins

表本身進行Join。在FROM后出現(xiàn)兩次,并且跟隨別名。

Cartesian Products(笛卡爾乘積)

如果一個Join查詢不包含Join Conditon,那么Oracle返回的就是一個他們的Cartesian product。這個結(jié)果一般沒有什么用,所以Join的時候最后都指定Join Conditon。

Inner Joins(simple join)

只Join滿足的行。

Outer Joins

Outer Join擴展了simple join的結(jié)果。一個outer join返回所有滿足Join Conditon的行,同時從一個不滿足條件的表返回一些或所有行。

LEFT [outer] JOIN

想要Join表 A,B,同時返回A的所有行。在FROM后面使用left [outer] join語句,或者在WHERE語句中的Join Conditon對B的所有列使用outer join operator(+)。對A在B中沒有匹配行,在B的列中就會返回NULL。

舉個例子

有一個屬地代碼表md_area(areano, name)。

有一個用戶表users(mdn,areano,….)。

我現(xiàn)在要統(tǒng)計users表中各屬地的用戶數(shù),還要根據(jù)代碼顯示出屬地名稱,以便更加直觀的進行統(tǒng)計。select area, areaname, ct from

(select areano as area, count(*) as ct from users group by areano) t1

left join

(select areano, name as areaname from md_area t2) on t2.areano = t1.area;

Right [outer] Join

接上例,其等于:select area, areaname, ct from

(select areano, name as areaname from md_area t2)

right join

(select areano as area, count(*) as ct from users group by areano) t1

on t2.areano = t1.area;

Antijoins (反連接)

Semijoins (半連接)

總結(jié)

以上是生活随笔為你收集整理的oracle union详解,Oracle中的union和join的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲不卡在线播放 | 久久久久久久久福利 | 国产xxxxx | 七月色| 波多野结衣电车 | 国产午夜性春猛交ⅹxxx | 豆花在线视频 | 美女视频国产 | 欧美成人激情 | 无码国产精品一区二区免费式直播 | 精品视频一区二区三区四区 | 中文字幕乱码亚洲无线三区 | 好吊操这里只有精品 | 日本少妇全体裸体洗澡 | 1024亚洲天堂 | 日韩中文字幕久久 | 精品久久精品久久 | 国产青青 | 欧美性大交 | 亚洲精品在线观看av | 欧美成人国产精品高潮 | 久久人妻精品白浆国产 | 2022国产精品 | 国产交换配乱淫视频免费 | 欧美成人精品一区二区综合免费 | 精品国产午夜福利在线观看 | 日本a区| 男人操女人的软件 | 狠狠干,狠狠操 | 玩弄丰满少妇xxxxx性多毛 | 国产免费成人 | 淫片一级国产 | 奇米影视在线视频 | 理论片在线观看视频 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 成人手机在线播放 | 日韩在线视频你懂的 | 日日夜夜天天干 | 久久久福利 | 久草手机在线观看 | 天天人人精品 | 999精彩视频 | 免费精品视频一区二区三区 | 国产成人综合视频 | 在线免费成人 | 激情二区| 久久久无码精品亚洲国产 | 久久久久人妻一区精品色 | 久久午夜精品人妻一区二区三区 | 女女高潮h冰块play失禁百合 | av成人资源 | 99国产精品视频免费观看一公开 | 久久久久亚洲av片无码下载蜜桃 | 91精品国产免费 | 欧美激情国产一区 | 色噜噜色综合 | 午夜精产品一区二区在线观看的 | 亚洲高清一区二区三区 | 日本一区二区三区视频在线播放 | 国产午夜福利一区二区 | 国产精品一区二区免费在线观看 | 91亚洲精华国产精华精华液 | 国产在线日本 | 91午夜剧场 | 天堂精品在线 | 人妻无码久久精品人妻 | 国产成人小视频在线观看 | 成人在线视频一区 | 久久精品人人爽 | 国产婷婷色一区二区 | 久草精品在线观看视频 | 91亚洲国产成人精品一区二区三 | 久久精品无码专区免费 | 97国产精品视频 | 黄视频网站在线 | 久久久久国产一区二区三区潘金莲 | 国产成人毛毛毛片 | 久久av无码精品人妻系列试探 | 就要日就要操 | 久久二| 香蕉成人网| 六月综合激情 | 在线观看视频福利 | 国产在线一卡二卡 | 奇米影视777第四色 2019中文字幕在线免费观看 | 欧美日韩激情在线一区二区三区 | 青娱乐国产精品 | 96av在线视频 | 国产日韩中文 | 全黄一级裸片视频 | 日韩a级黄色片 | 亚洲成人久久久 | xxx国产在线观看 | 老司机精品福利视频 | 在线只有精品 | 久久精品国产99久久不卡 | 97精品人妻一区二区三区 | 毛片哪里看 | hd丰满圆润的女人hd |