求教各位大侠,A表中的数据在B表中某一区段存在,我现在想取出的结果是,属于B表区段之间,在A表没有出现的数据!A表如下:
Name Num
大点 100000
多点 100012
黑点 23976
垄断 465365
起点 34879080
开点 2190
......
B表如下:
Stationname BeginNum EndNum
幅度          100000 103940
空点            2134 24000
浮点          200000 580000
卡的        14000023 76234323
......
取出的结果如下:StationName NUM
幅度 100001
幅度 100002
幅度 100003
幅度 100004
幅度 100005
......
幅度 100011
幅度 100013
幅度 100014
......
幅度 103940
空点 2134
空点 2135
空点 2136
空点 2137
空点 2138
空点 2139
空点 2140
......
空点 2189
空点 2191
空点 2192
......
空点 23977
空点 24000

解决方案 »

  1.   

    select b.*
    from b left join a on a.num=b.num and a.name=b.name
    where b.name is null
      

  2.   

    用得着用游标么,给你个1000万行的数据,你用游标慢慢找吧,
    有两种方法
    1 集合
    select id from table_a 
    minus
    select id from table_b
    2 关联
    select id 
      from table_a,table_b
     where b.id(+)=a.id
       and b.id is null; 
      

  3.   

    提供一个思路
       拆分表B 
            例 范围 1 ~100 转为 100 行记录
       再与 表A 关联,过滤出 没有关联上的剩余结果 难点,如何拆分表B
        建议,可以考虑 connet by 的语法
      

  4.   

    直接用Minus关键字就可以导出数据!希望能够帮到你吧!