基于开始和结束日期的动态Oracle SQL查询

时间:2020-09-29 11:14:46

标签: sql oracle

我的桌子:

Table

基于开始日期和结束日期,我需要获得如下输出:

Output

假设开始日期为2020年9月1日,结束日期为2020年9月9日(动态提供)。 根据上述日期,date应该是列名,而id应该是相应列下的数据。 如果id在相应的日期不存在,则在输入表中应为null。

我无法为此查询。拜托,有人建议我在上面写查询。

预先感谢。

1 个答案:

答案 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