假如数据库中有一条记录:
人名 开始时间 结束时间
张三 3月20 3月25日
通过select 查询想要的结果
人名 日期
张三 3月20
张三 3月21
张三 3月22
张三 3月23
张三 3月24
张三 3月25
请问,该查询语句要如何写?
------解决方案--------------------
with t as
(select 'zhangsan' nm,
to_date('2014/03/20', 'yyyy/mm/dd') s_dt,
to_date('2014/03/25', 'yyyy/mm/dd') e_dt
from dual)
select t.nm, t.s_dt + rownum - 1
from t
connect by e_dt >= s_dt + rownum - 1;
------解决方案--------------------
如果不是日期类型,比较麻烦,需要考虑跨月的情况。
是日期格式的话使用1楼方法即可。