Oracle 取兩個(gè)表中數(shù)據(jù)的交集關(guān)鍵字: Oracle 取兩個(gè)表中數(shù)據(jù)的交集 INTERSECTOracle 作為一個(gè)大型的關(guān)系數(shù)據(jù)庫,日常應(yīng)用中往往需要提取兩個(gè)表的交集數(shù)據(jù) 例如現(xiàn)有如下表,要求找出工資2500(不含2500)以上并且是男性(M)的員工編號(hào),那么就要利用這兩個(gè)表的關(guān)系做一個(gè)交集了
方法1:利用操作符INTERSECT INTERSECT 操作符用來合并兩個(gè)查詢,返回兩個(gè)查詢中都存在的記錄,即返回兩個(gè)查詢結(jié)果的交集,前提是兩個(gè)查詢的列的數(shù)量和數(shù)據(jù)類型必須完全相同。 SELECT CODE FROM EMPLOYEE WHERE
GENDER 第一條SQL的結(jié)果為 CODE 第二條SQL的結(jié)果為 CODE INTERSECT的結(jié)果 CODE 方法2:利用關(guān)系SQL SELECT A.CODE FROM EMPLOYEE A, SALARY B 結(jié)果為 CODE 以上兩種方法是本人比較常用的方法,尤其第二種,充分體現(xiàn)關(guān)系數(shù)據(jù)的精髓所在。但如果兩個(gè)表結(jié)構(gòu)比較復(fù)雜,而且關(guān)系條件也比較難實(shí)現(xiàn)的話,第一種顯然能夠簡(jiǎn)單地得到需要的結(jié)果,也不失為一種好方法。 差異集合: minus 并集,并排除重復(fù)記錄:union 并集,并包含重復(fù)記錄:union all |
|