现有一表A字段如下:FIRST SPECVALUE
100 10
90 15
80 20
70 30
.........
0 95给出一个变量值,选择在SPECVALUE区间内较大的那条记录。(specvalue无重复,最小为0,最大不大于100)
例如23,选择第4条记录,因为23小于30且大于20
13,选择第2条记录,因为13大于10小于15
如果是9,则选择第1条记录,因为9大于0小于10
如果是98,则选择最后1条记录,因为98大于95小于100
100 10
90 15
80 20
70 30
.........
0 95给出一个变量值,选择在SPECVALUE区间内较大的那条记录。(specvalue无重复,最小为0,最大不大于100)
例如23,选择第4条记录,因为23小于30且大于20
13,选择第2条记录,因为13大于10小于15
如果是9,则选择第1条记录,因为9大于0小于10
如果是98,则选择最后1条记录,因为98大于95小于100
(SELECT max(SPECVALUE) from tableA where SPECVALUE<=变量)
这样应该就可以了吧
SELECT FIRST,SPECVALUE from tableA where SPECVALUE=
(SELECT min(SPECVALUE) from tableA where SPECVALUE>=变量)
where rownum =1
and SPECVALUE >=&SPECVALUE;
where rownum =1
and SPECVALUE >=&SPECVALUE order by specvalue;
from (
select a.SPECVALUE
from A a
where a.SPECVALUE <= 100
and a.SPECVALUE > &SPECVALUE
order by a.SPECVALUE
)
where rownum = 1;
where rownum =1
and SPECVALUE >=&SPECVALUE;这个就好.简单明了.