关于oracle 的sql 查询 问题

哪位大神能帮我看看这个语句怎么写 有区间【i1,i2】与bgpprefix 表中的nstartip 和nstopip 比对,查询能使(i1>=nstartip ,且i2<=nstopip),若存在多个,取nstopip-nstartip 最小的

如下就可以了

 select * from(
select * from bgpprefix  where nstartip<=i1 and nstopip>=i2 order by nstopip-nstartip
) where rownum=1

哪位大神能帮我看看这个语句怎么写 有区间【i1,i2】与bgpprefix 表中的nstartip 和nstopip 比对,查询能使(i1>=nstartip ,且i2<=nstopip),若存在多个,取nstopip-nstartip 最小的

采用这个

select * from ( select * from bgpprefix where i1>=nstartip and i2<=nstopip order by nstopip - nstartip asc) b where rownum <= 1;