zoukankan      html  css  js  c++  java
  • 找出两个异构数据库的差异(找出其中的缺失记录)

    -- oracle
    select
         substr(md5(key_id),1,1) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    group by 
        substr(md5(key_id),1,1)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | 1    |   1 |
    | 4    |   1 |
    | 8    |   1 |
    | a    |   1 |
    | c    |   3 |
    | d    |   1 |
    | e    |   2 |
    +------+-----+
    
    -- hive
    select
         substr(md5(key_id),1,1) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 9  as key_id union all 
        select 10  as key_id
    ) t1
    group by 
        substr(md5(key_id),1,1)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | 1    |   1 |
    | 4    |   1 |
    | 8    |   1 |
    | a    |   1 |
    | c    |   2 |
    | d    |   1 |
    | e    |   2 |
    +------+-----+
    
    -- 经过比对,flag c有差异
    -- oracle
    select
         substr(md5(key_id),1,2) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,1) = 'c'
    group by 
        substr(md5(key_id),1,2)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | c4   |   1 |
    | c8   |   1 |
    | c9   |   1 |
    +------+-----+
    
    -- hive
    select
         substr(md5(key_id),1,2) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,1) = 'c'
    group by 
        substr(md5(key_id),1,2)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | c4   |   1 |
    | c8   |   1 |
    +------+-----+
    
    -- 经过比对,flag c9有差异
    -- oracle
    select t1.*
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,2) = 'c9'
    ;
  • 相关阅读:
    九校联考-DL24凉心模拟Day2T2 整除(division)
    九校联考-DL24凉心模拟Day1T3 三米诺 (tromino)
    九校联考-DL24凉心模拟总结
    异常 日志-<多重catch语句>
    时间和日期实例-<Calender计算出生日期相差几天>
    时间和日期-<Date和SimpleDateFormat>
    实用类-<Math类常用>
    实用类-<字符串与基本类型的转换>
    实用类-<装箱与拆箱>
    HashMap的应用
  • 原文地址:https://www.cnblogs.com/chenzechao/p/12609187.html
Copyright © 2011-2022 走看看