oracle查询最近十天日期,ORACLE中距离某日期最近的记录的查询

在做项目的时候经常会用到距离某日期最近的记录,既然是记录,那么查询出的酒不会单单是日期和进行分组的某字段,那么这个时候就需要进行表和自身的关联,但是当多个表之前进行关联,而且每个表都要与自身进行关联时就会造成查询速度慢等问题。那么应当如何才能减少表与表之间的关联,进而提高查询速度呢?

举个例子如下:

(1)创建表

-- Create table

create table EXAMPLE

(

XH NUMBER(10) not null,

NY VARCHAR2(6) not null

);

-- Add comments to the columns

comment on column EXAMPLE.XH

is '序号';

comment on column EXAMPLE.NY

is '年月';

-- Create/Recreate primary, unique and foreign key constraints

alter table EXAMPLE

add constraint EXAMPLE_XH_NY primary key (XH, NY)

using index;

(2)插入12条记录:

insert into EXAMPLE (XH, NY)

values (1, '201001');

insert into EXAMPLE (XH, NY)

values (1, '201002');

insert into EXAMPLE (XH, NY)

values (1, '201003');

insert into EXAMPLE (XH, NY)

values (1, '201004');

insert into EXAMPLE (XH, NY)

values (1, '201005');

insert into EXAMPLE (XH, NY)

values (1, '201006');

insert into EXAMPLE (XH, NY)

values (1, '201007');

insert into EXAMPLE (XH, NY)

values (1, '201008');

insert into EXAMPLE (XH, NY)

values (1, '201009');

insert into EXAMPLE (XH, NY)

values (1, '201010');

insert into EXAMPLE (XH, NY)

values (1, '201011');

insert into EXAMPLE (XH, NY)

values (1, '201012');

commit;

如下图所示:

21331312_201007121127012.jpg(3)查询序号为1,2010年8月之前最大的记录,查询结果我们知道是xh为1,ny为201008,那么相应的sql语句应当怎么写比较简单呢?

Select xh as 序号,ny as年月from (select * from example order by ny desc) where xh=1 and ny<='201008' and rownum=1;

查询结果为:

21331312_201007121127011.jpg

问题得以解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值