我的桌子:
基于开始日期和结束日期,我需要获得如下输出:
假设开始日期为2020年9月1日,结束日期为2020年9月9日(动态提供)。 根据上述日期,date应该是列名,而id应该是相应列下的数据。 如果id在相应的日期不存在,则在输入表中应为null。
我无法为此查询。拜托,有人建议我在上面写查询。
预先感谢。
答案 0 :(得分:1)
您可以尝试以下方法:
SELECT * FROM
(
SELECT name, dat, id
FROM tbl
)
PIVOT
(
max(id)
FOR dat IN ('01-Sep-2020', '02-Sep-2020', '03-Sep-2020', '04-Sep-2020', '05-Sep-2020', '06-Sep-2020', '07-Sep-2020')
)
ORDER BY name;
https://dbfiddle.uk/?rdbms=oracle_18&fiddle=63413c3d5ce0e3a67e9c18d0fe39b21f