修改最近的一条记录
我想根据时间排序,修改时间离现在最近的那条记录,该如何做?
比如:
c1 c2 c3
a aa 2013-01-02
b bb 2013-10-12
e ee 2013-10-29
有这么几条记录,我想修改时间为2013-10-29那条记录,SQL语句应该如何写啊?
------解决方案--------------------create table test_csdn(
c1 varchar2(32),
c2 varchar2(32),
c3 date
);
insert into test_csdn
values('a','aa',to_date('2013-01-02','yyyy-mm-dd'));
insert into test_csdn
values('b','bb',to_date('2013-10-12','yyyy-mm-dd'));
insert into test_csdn
values('e','ee',to_date('2013-10-29','yyyy-mm-dd'));
update test_csdn set c1 = 'd',c2 = 'dd'
where months_between(sysdate,c3) in (
select min(months_between(sysdate,c3))
from test_csdn
);
------解决方案--------------------是不是每天只有一条数据 ?如果日期相同 要根据什么再排序?
如果只是一天一条的话 直接查询最大的就行了
update tb
set c2 = ''
where c3 = (select max(c3) from tb1)
------解决方案--------------------一天很多条也一样用啊
------解决方案--------------------
你多条要需要什么字段排序区别呢?不然会更新到多条记录、
像2楼所说,假如多条的话排序,取第一条就行。
------解决方案--------------------select * from table where rownum <= 1 order by date desc
------解决方案--------------------where c3=(select c3 from table where rownum<=1 order by c3 desc);