阿強
Lv 7
阿強 asked in 電腦與網際網路軟體 · 1 decade ago

如何比較Oracle不同資料表內的Data?

我在Oracle資料庫內有兩個資料表Table1,Table2,其欄位架構內容都是一模一樣。例如:Talbe1:欄位有 R1,R2,R3,R4~R10。Talbe2:欄位也有 R1,R2,R3,R4~R10。我要比較這兩個資料表內的資料,有那些是不一樣的,sql語法要如何下?備註:資料表內的資料,有可能部份欄位資料有差異,也要找出來。

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    select t1,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from (

    select 'table1' as t1,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from (

    select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table1 minus (select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table1 intersect select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table2))

    union all

    select 'table2' as t1,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from (

    select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table2 minus (select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table1 intersect select r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 from table2)))

    order by r1,r2,r3,r4,r5,r6,r7.r8,r9,r10,t1;

    這樣依照r1......r10先排序,之後放那一個表的名稱即可知道那一筆屬於那一個表了。

    2006-10-22 14:29:00 補充:

    其實A扣除A與B的交集加上B扣除A與B的交集後,所得到的資料是不可能完全一致的,是故使用UNION ALL 或UNION 的意義是一樣的。

    Source(s): 我學習sql語言約略一年半左右,這是我的理解,可能不是最佳solution
  • Anonymous
    6 years ago

    要買高仿的還是要去 http://aaashops。com 品質不錯,老婆很喜歡。

    吤吙

Still have questions? Get your answers by asking now.