首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql判断是不是在这些范围内 找出不在这个表范围内的数据

2013-04-02 
sql判断是否在这些范围内 找出不在这个表范围内的数据a表 范围表 字段2个startnumendnum(end比start大)big

sql判断是否在这些范围内 找出不在这个表范围内的数据
a表 范围表 字段2个   startnum   endnum  (end比start大)bigint类型  
数据:
1677747216778239
1677926416781311
1678540816793599
…………
1697382417039359
1703961617040383
………………省略 这个表数据几十万
1743539217436671
1743667217465343
1756364817825791

b表 一个字段 num   bigint类型
数据
16777472
16777728
16777984
16779264
……省略 这个表数据上百万
16779776
16780032
16780288
16780544
16780800

a表数据唯一  b表数据唯一  

需要筛选出 b表 数据 不在a表范围内 的数据

select * from a_tb WHERE num BETWEEN startnum AND endnum  一个数据判断像这样 现在是两表了 
筛选出 不在a表范围的b表数据  怎么来? sql范围筛选
[解决办法]
上面一个是在范围的。


不在范围的加一个not:

select * from 表b b where not exists(select 1 from 表A where b.num>=startnum and b.num<=endnum)

[解决办法]

select t.p into iptemp from (
SELECT b.p FROM tb1  a  JOIN  tb2 b
on   b.num  between a.startnum and   a.endnum
) t

SELECT  p FROM tb2 except
SELECT  p FROM iptemp 


热点排行