首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

批改最近的一条记录

2013-12-19 
修改最近的一条记录我想根据时间排序,修改时间离现在最近的那条记录,该如何做?比如:c1c2c3aaa2013-01-02bb

修改最近的一条记录
我想根据时间排序,修改时间离现在最近的那条记录,该如何做?
比如:
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)

[解决办法]
一天很多条也一样用啊
[解决办法]
引用:
Quote: 引用:

是不是每天只有一条数据 ?如果日期相同 要根据什么再排序?

如果只是一天一条的话 直接查询最大的就行了

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); 

热点排行