Choose Category
WITH RECURSIVE base (c_year,c_month,c_date,day_of_month,c_list) AS ( SELECT year_of_calendar AS c_year ,month_of_year AS c_month ,calendar_date AS c_date ,day_of_month ,TRIM(CAST(day_of_month!!':'!!calendar_date AS VARCHAR(10000))) AS c_list FROM sys_calendar.calendar WHERE day_of_month = 1 UNION ALL SELECT c.year_of_calendar AS c_year ,c.month_of_year AS c_month ,c.calendar_date AS c_date ,c.day_of_month ,b.c_list !! ',' !! TRIM(CAST(c.day_of_month!!':'!!c.calendar_date AS VARCHAR(10000))) AS c_list FROM sys_calendar.calendar c JOIN base b ON b.c_year = c.year_of_calendar AND b.c_month = c.month_of_year AND b.day_of_month + 1 = c.day_of_month ) SELECT c_year,c_month,c_list FROM base WHERE ADD_MONTHS(c_date - EXTRACT(DAY FROM c_date)+1,1)-1 = c_date AND c_year = 2011