Oracle中對兩個數據表交集的查詢-專欄,ORACLE

電腦雜談  發布時間:2020-01-28 19:04:11  來源:網絡整理

mysql交集_oracle 交集_oracle 取交集

oracle關系型管理系統是世界上流行的關系,它是一個極其強悍、靈活和復雜的系統,據說,在使用oracle時應有這樣的觀念,那就是在sql中近乎可以推動任何一種想法。

下面向你們介紹使用sql查兩個oracle數據表查詢的同樣數據的方式,筆者感到這兩種方式執行強度高、使用便于。

第一種方法:利用操作符intersect

intersect操作符用來合并兩個查詢,返回兩個查詢中都存在的記錄,即返回兩個查詢結果的交集,前提是兩個查詢的列的數目跟數據類別需要完全相同。

舉例說明:

表a的數據結構:

mysql交集_oracle 交集_oracle 取交集

中文名稱字段名類型長度學號 codec 4姓名 namec 8

表b的數據結構:

中文名稱 字段名 類型 長度學號 student_code c 4姓名 student_namec 8分數 scoren 3

表a的數據為:

(1101 ,韓甲),(1102 ,丁乙)

表b的數據為:

mysql交集_oracle 交集_oracle 取交集

(1101oracle 交集,韓甲,ArrayArray),(1102 ,丁乙,8Array),(1103 ,徐靜,Array4)

在oracle中運行以下查詢,圖1顯示了這個查詢的結果:

sql>select code, name from a

intersect

select student_code,student_name from b;

圖1使用intersect操作符查詢的結果

mysql交集_oracle 取交集_oracle 交集

第二種方法: in子句

in子句可以在子查詢中為where子句計算所得的值建立一個列表。這種方式與前一種方法有所不同的是,前一種方法非常多列但只使用一個intersect就行了,而一個in子句用來比較兩個子查詢的一列,比較幾列就要使用幾個in子句。下面例子表明怎樣獲得兩個查詢的交集。

仍以a和b兩張數據表為例oracle 交集,在oracle中運行以下查詢,圖2顯示了這個查詢的結果:

sql>select code,name from a

where a.code in

(select student_code from b)

oracle 取交集_mysql交集_oracle 交集

and a.name in

(select student_name from b)

order by a.code;

查詢結果如圖2所示。

圖2使用in子句查詢的結果

以上為筆者使用oracle7.3的體會,如有不當之處,請不吝賜教。


本文來自電腦雜談,轉載請注明本文網址:
http://www.gefhbj.live/a/shumachanpin/article-138676-1.html

    相關閱讀
    發表評論  請自覺遵守互聯網相關的政策法規,嚴禁發布、暴力、反動的言論

    熱點圖片
    拼命載入中...
    少林宝藏100在线客服 排三试机号今天16:30点 山西十一选五前3遗漏 信誉好的棋牌游戏有嘛 排列三开奖直播视频 甘肃11选5真准网 北京麻将下载免费的 期货配资平台是什么意思 手机qq游戏大厅 好运彩3 118图库彩图跑狗彩图 11选5开奖时间调整 中超直播新浪 3d开机号试机号关 排列5走势图 好看的日本黄色片 今日推荐黑马股票