我有table call students,它有三个列id,datefrom,dateto现在我想把两个dates列范围datefrom和dateto转换成一个列months作为输出。
表格结构如下。日期格式(yyyy-mm-dd)
ID DateFrom DateTo
123 2019-12-03 2020-02-03
456 2020-02-03 2020-02-21
产出结构
ID Months
123 2019-12
123 2020-01
123 2020-02
456 2020-02
2条答案
按热度按时间r6vfmomb1#
最简单的方法是使用一个辅助日历表,在两个表之间建立一个简单的连接:
如果没有日历表,可能需要考虑添加一个日历表。
如果不能(或不想)添加日历表,可以使用数字(tally)表获得相同的结果。
如果没有计数表,可以使用公共表表达式动态生成一个。
在这种情况下,sql是这样的:
sxpgvts32#
假设您的表名为“dataval”,请尝试以下操作
在这里摆弄