我要从Oracle数据库中查询一条数据,SQL语句如下:
select
tb.data1
from table tb
where to_char(tb.date,'yyyy-MM-dd') = '2018-12-06'
要实现的功能是:
如果2018-12-06这天查出的数据为空,则时间向前推一天继续查找,也就是继续查2018-12-05的数据;
如果还没有查找到,继续向前推一天,知道查到的数据不为空为止。
这个功能该怎么实现???
(不限存储过程、存储函数)
在线等。。。
存储过程的话,可以声名一个日期变量; 循环, 日期减一天; 直到查出数据或者当日期小于某天时停止.
按照你的描述写的就是存储过程。
不过要学会转弯,你想想你这个描述是不是等价于 小于等于指定日期的数据中,日期最大的数据呢?何必写个循环一天天找 ,明明一次性就能找到