Oracle伪列Level的使用

本文介绍了如何在Oracle数据库中使用Level伪列进行分级查询。通过创建一个包含用户ID、开始日期和结束日期的表格,展示了如何插入数据并进行查询。接着,结合伪列和分级查询,展示了一个示例,用于显示从开始日期到结束日期的所有日期,进一步理解Level伪列的功能。
摘要由CSDN通过智能技术生成

1.创建表

create table uuser(
userId integer,
start_dt date,
end_dt date
)
插入数据:

insert into uuser(userId,start_dt,end_dt) values(1001,to_date('2019/04/18','yyyy/mm/dd'),to_date('2019/04/20','yyyy/mm/dd'));
insert into uuser(userId,start_dt,end_dt) values(1002,to_date('2019/04/18','yyyy/mm/dd'),to_date('2019/04/20','yyyy/mm/dd'));

select * from uuser order by userId;

查询结果如图所示:

2.伪列和分级查询的综合使用

ITH TB AS
     (SELECT '1001' userId, to_date ('2019-04-18','yyyy/mm/dd') start_dt, date '2019-04-20' end_dt  FROM dual 
      UNION ALL SELECT '1002' userId , date '2019-04-18' , date '2019-04-22' FROM dual
)   
select TB.userId,TB.start_dt+level-1
from  TB
connect by level<=(TB.end_dt-TB.start_dt+1)
and prior dbms_random.value is not null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值