当前位置: 代码迷 >> Oracle开发 >> oracle 数值区间比较解决办法
  详细解决方案

oracle 数值区间比较解决办法

热度:70   发布时间:2016-04-24 06:37:05.0
oracle 数值区间比较

如图,num1 和 num2构成一个区间,现在要传入一个区间去比较库里面不存在的数据,这个要怎么写好?比如:第一行的80000011~80000094,而我传入的是80000011~80000100,差异是80000095~800001000,但是其他行可能存在有80000096~80000098,这时差异就是80000095~80000095和80000099~80000100
------解决方案--------------------
又稍稍调整了下,你拿去你的环境执行,有问题的话再说
语句中的v_start 和v_end 替换为你的起止参数
select num1,num2 from
(
select lpad(to_number(lag(num2,1,to_number(v_start)-1)over(order by num1))+1,8,'0') num1,
lpad(to_number(num1)-1,8,'0') num2
from
  (select num1,num2
  from T
  where num1<=v_end and num2>=v_start
  union all
  select lpad(to_number(v_end)+1,8,'0'),null from dual
  )
)where num1<=num2
order by num1
  相关解决方案