在oracle中,union用于將兩個(gè)SQL語(yǔ)句的結(jié)果合并起來,并且排除其中重復(fù)的數(shù)據(jù),并且兩個(gè)select語(yǔ)句的字段類型匹配,而且字段個(gè)數(shù)要相同,語(yǔ)法為“select column,…from table1 union select column,…from table2”。
本教程操作環(huán)境:windows10系統(tǒng)、Oracle 12c版、Dell G3電腦。
oracle中union怎么用
union指令的目的是將兩個(gè) SQL 語(yǔ)句的結(jié)果合并起來,可以查看你要的查詢結(jié)果。會(huì)排除重復(fù)的記錄 。
例如:
SELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales
注意:union用法中,兩個(gè)select語(yǔ)句的字段類型匹配,而且字段個(gè)數(shù)要相同,如上面的例子,在實(shí)際的軟件開發(fā)過程,會(huì)遇到更復(fù)雜的情況,具體請(qǐng)看下面的例子
這個(gè)句子的意思是將兩個(gè)sql語(yǔ)句union查詢出來,查詢的條件就是看XMDA表中的FL_ID是否和主表FLDA里的FL_ID值相匹配,(也就是存在).
UNION進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。
在查詢中會(huì)遇到 UNION ALL,它的用法和union一樣,只不過union含有distinct的功能,它會(huì)把兩張表了重復(fù)的記錄去掉,而union all不會(huì),所以從效率上,union all 會(huì)高一點(diǎn),但在實(shí)際中用到的并不是很多.
表頭會(huì)用第一個(gè)連接塊的字段。。。。。。。。。。
而UNION ALL只是簡(jiǎn)單的將兩個(gè)結(jié)果合并后就返回。這樣,如果返回的兩個(gè)結(jié)果集中有重復(fù)的數(shù)據(jù),那么返回的結(jié)果集就會(huì)包含重復(fù)的數(shù)據(jù)了。
從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認(rèn)合并的兩個(gè)結(jié)果集中不包含重復(fù)的數(shù)據(jù)的話,那么就使用UNION ALL,如下:
推薦教程:《Oracle視頻教程》