关于一个oracle 的sql 查询

哪位大神能帮我看看这个语句怎么写 有区间【i1,i2】与bgpprefix 表中的nstartip 和nstopip 比对,查询能使(i1>=nstartip ,且i2<=nstopip),若存在多个,取nstopip-nstartip 最小的那一项,要求必须是查完要求的区间,在从区间中用min()函数找到nstopip-nstartip的那一项 要求效率要高,各位大神帮个忙啊

3个回答

SELECT TOP 1 nstartip, nstopip
  FROM nyein2 37
 WHERE i1 >= nstartip
   AND i2 <= nstartip

忘了排序。Oracle 没 TOP。效率高不起来了 :(

 SELECT * FROM (SELECT nstartip, nstopip
  FROM nyein2 37
 WHERE i1 >= nstartip
   AND i2 <= nstopip
ORDER BY nstartip
) AS t
WHERE ROWNUM<=1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!