求sql
现有一表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
------解决方案--------------------反了,
SELECT FIRST,SPECVALUE from tableA where SPECVALUE=
(SELECT min(SPECVALUE) from tableA where SPECVALUE> =变量)
------解决方案--------------------select * from 表名
where rownum =1
and SPECVALUE > =&SPECVALUE;
------解决方案--------------------select * from 表名
where rownum =1
and SPECVALUE > =&SPECVALUE order by specvalue;
------解决方案--------------------select *
from (
select a.SPECVALUE
from A a
where a.SPECVALUE <= 100
and a.SPECVALUE > &SPECVALUE
order by a.SPECVALUE
)
where rownum = 1;
------解决方案--------------------select * from 表名
where rownum =1
and SPECVALUE > =&SPECVALUE;
这个就好.简单明了.