如何在一行中获取这些数据

Posted

技术标签:

【中文标题】如何在一行中获取这些数据【英文标题】:How can I get this data in a single row 【发布时间】:2016-02-25 18:48:38 【问题描述】:
SELECT TO_CHAR(X,'MON'),TO_CHAR(X,'DD')
FROM
(SELECT CASE WHEN TO_CHAR(TO_DATE('01-MAY-2015')+(ROWNUM-1),'DY') = 'FRI' THEN<br>
TO_DATE('01-MAY-15')+(ROWNUM-1) ELSE NULL END AS X FROM all_objects<br>
WHERE ROWNUM < (select (to_date ('01-MAY-16') - to_date('01-MAY-15')+1) <br>
  from dual)) 
WHERE X IS NOT NULL;

我想从给定日期开始显示给定年份每月每周的星期五日期。

假设我将开始日期指定为 2015 年 3 月 1 日至 2016 年 2 月 29 日 十我应该得到喜欢

三月三月三月四月四月四月五月…………二月二月 06 13 20 27 3 10------------- 19 26

我将它们放在列中。我怎样才能让它们排成一行。 提前致谢。

【问题讨论】:

【参考方案1】:

你可能需要这样的东西:

with test(start_date) as
    (select to_date('15022016', 'ddmmyyyy') from dual) /* your start date */
select listagg(to_char(date_, 'dd/mm/yyyy'), ', ')
        within group(order by date_) /* concatenation of dates */
from (
        select start_date + level -1 date_ /* to generate dates */
        from test
        connect by start_date + level -1  <= add_months(start_date, 12) /* to keep dates in one year from the starting date */
     )
where to_char(date_, 'd') = 5 /* check if friday, the 5th day of week */

我在代码中放了一些 cmets,以便对不同部分进行最低限度的解释。

【讨论】:

以上是关于如何在一行中获取这些数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从一行列表中的所有对象中获取相同的属性

如何从文本文件中获取每一行并平均它们?

如何在sql server中获取前一行数据

如何在 Apache Spark 中获取上一行的数据

如何在数据工厂中获取 CSV 的第一行和第一列值?

如何在从服务器获取数据的动态表的每一行中添加下拉列表?