日期:2014-05-17  浏览次数:20737 次

pl\sql 查询问题
假如数据库中有一条记录:
人名  开始时间  结束时间
张三  3月20      3月25日

通过select 查询想要的结果
人名  日期
张三  3月20
张三  3月21
张三  3月22
张三  3月23
张三  3月24
张三  3月25 

请问,该查询语句要如何写?
------解决方案--------------------
引用:
假如数据库中有一条记录:
人名  开始时间  结束时间
张三  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;

------解决方案--------------------
引用:
假如数据库中有一条记录:
人名  开始时间  结束时间
张三  3月20      3月25日

通过select 查询想要的结果
人名  日期
张三  3月20
张三  3月21
张三  3月22
张三  3月23
张三  3月24
张三  3月25 

请问,该查询语句要如何写?

如果不是日期类型,比较麻烦,需要考虑跨月的情况。
是日期格式的话使用1楼方法即可。