对上一篇文章里提到两条语句
select distinct begin_date, end_date, begin_date + level -1 day from test connect by begin_date + level -1 <= end_date order by 1,2,3;
和
select one_date
from (select start_date + level – 1 one_date
from (select min(start_date) start_date, max(end_date) end_date
from test) test
connect by start_date + level – 1 < = end_date ) all_date,
test
where one_date between start_date and end_date;
它们都实现相同的功能,即: 当一个表里面有两个列,分别为begin_date和end_date时,如何针对这个表的每一行,用SQL返回begin_date和end_date之间的所有连续日期。
这两条语句的可扩展性问题是下面是讨论的重点……

最近评论