欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

批改最近的一条记录

更新时间: 2014-01-05 02:11:55 责任编辑: Author_N1

 

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6854/
本文WWW.DOC100.NET DOC100.NET版权所有。