下面是一个例子,我有一个类似的数据,我期待两个日期字段之间的concat日期
表ABC
| ID|从|到|
| --------------|--------------|--------------|
| 1|2019 - 03 - 12|2019 - 05 - 22|
| 1|2019 - 05 - 21 00:00:00|2019 - 06 - 15|
| 二|2023年1月1日|2023年4月18日|
| 三|2020年3月29日|2019 - 06 - 21 00:00:00|
| 三|2019 - 05 - 21|2019 - 07 - 11 00:00:00|
| 三|2022年12月12日|2023年3月20日|
我期待得到从和到列之间的日期和打印结果列与分组的基础上ID字段分隔;输出应该类似于下面的内容。
| ID|结果|
| --------------|--------------|
| 1|2021年3月1日;2021年4月1日;2021年5月1日;01/06/2021|
| 二|2023年1月1日;2023年2月1日;2023年3月1日;01/04/2023|
| 三|2020年3月1日;2020年4月1日;2020年5月1日;2020年6月1日;2023年5月1日;2023年6月1日;2023年7月1日;2022年1月12日;2023年1月1日;2023年2月1日;01/03/2023|
感谢您的评分
2条答案
按热度按时间xurqigkl1#
这里有一个选择:
样本数据:
查询:查找
FROM
和TO
日期之间的月数(截断为每月1号),并在ADD_MONTHS
函数中使用它来创建所需日期的列表:vsikbqxv2#
您可以使用递归子查询factoring子句来生成所有月份,然后进行聚合:
其中,对于样本数据:
FROM
和TO
是保留字,不应用作标识符。如果您必须使用它们,则必须在所有使用它们的地方引用它们(并且始终使用一致的大小写)。*输出:
| ID|结果|
| --------------|--------------|
| 1|2021年3月1日;2021年4月1日;2021年5月1日;01/06/2022|
| 二|2023年1月1日;2023年2月1日;2023年3月1日;01/04/2023|
| 三|2020年3月1日;2020年4月1日;2020年5月1日;2020年6月1日;2022年1月12日;2023年1月1日;2023年2月1日;2023年3月1日;2023年5月1日;2023年6月1日;01/07/2023|
fiddle