用的是oracle 的数据库  里面有5万多条数据 然后我有个excel表格,里面也有5万多条数据 我想找出他俩个不相同的数据 有没有好的方法  在线等

解决方案 »

  1.   

    先把excel导入到oracle数据库,然后再比较
      

  2.   

    我想问你excel和oracle的字段是一一对应的吗?还是你只想比较某个字段。如果是一一对应的话你导入后可以把两个表的数据都选出来,求下两个结果集的差,或者用not in 或not exsits 都行,具体跟两个表之间的联系又关
      

  3.   

    用exists对每个字段进行比较.
    类似
    --excel中有表中没有的.
    select * from imported_table a
    where not exists(select 1 from your_table b
     where a.col1=b.col1 and ....)
    --表中有excel中没有的.
    select * from your_table  a
    where not exists(select 1 from imported_table b
     where a.col1=b.col1 and ....)
      

  4.   

    如果两个表结构相同,进逻辑比较相等的条件如果是两个表的所有字段相等的话可以使用MINUS。
    例如:
    SELECT * FROM test; 选择出如下数据     SELECT * FROM test2 ; 选择出如下数据
    ID      TEST_COLUMN                  ID       TEST_COLUMN
    7 1                      7        1
    8 1              8        2
    9 200                      9      2
    12 200              12       200
    1 123              1        123以上两组数据中的第二行与第三行是不同的,接下来使用如下语句查询:
    SELECT * FROM test
    MINUS
    SELECT * FROM test2 选择出如下数据ID      TEST_COLUMN
    8 1
    9 200
    (可以看出就是用了第一个数据集减去了与第二个数据集相同的记录)
    反过来选择出test2表中与test中不同的数据。
    SELECT * FROM test2
    MINUS
    SELECT * FROM test 

      

  5.   


    刚才发的帖子发现空格都被删减掉了,导致从第三行开始数据搅在了一起
    SELECT * FROM test; 选择出如下数据
    ID TEST_COLUMN 
    7 1 
    8 1 
    9 200 
    12 200 
    1 123 SELECT * FROM test2 ; 选择出如下数据
    ID TEST_COLUMN
    7 1
    8 2
    9 2
    12 200
    1 123
      

  6.   

    用外部表,然后create as ,在oracle里面比较。